用线段画的正方体
怎样让它旋转起来?

解决方案 »

  1.   

    YourImage.RotateFlip(RotateFlipType.Rotate90FlipNone);使用图片的RotateFlip属性旋转...
      

  2.   

    不是图片
    是用线段画的图形
    也没用direct3d
    想直接用坐标变换来做
      

  3.   

    你可以自己算透视什么的,不过要想真的让效果说得过去,还是Direct3D吧
    很容易的,比如显示在一个PictureBox里都成
      

  4.   

    但是directx不会用啊
    所以还是想用坐标变换的方法做
    不知道怎样从三维空间坐标系转换到屏幕的二维坐标系呢?
      

  5.   

    >>> 不知道怎样从三维空间坐标系转换到屏幕的二维坐标系呢
    不就是个投影么?
    貌似高中的立体几何就OK了吧
      

  6.   

    参考:System.Drawing.Draw2D.matrix ......
      

  7.   

    @Sunmast
    貌似高中立体几何一个字也没提到投影的问题,
    不信你现在想一个和投影有关的公式试试……
      

  8.   

    用Direct3D或OpenGL,并不很困难。
      

  9.   

    我现在的三维坐标系是这样建的
    x,y轴分别对应屏幕的x,y轴,z轴垂直屏幕向里
    在三维坐标系里点的旋转公式比较容易推导出来
    从三维坐标系转换到二维(屏幕)坐标系的时候,我是直接将x,y值拿过来用,z值不管它
    也就是说z值只在旋转变换的时候有用
    不知道这样建的三维坐标系和三维到二维的转换方法对不对?
    现在的效果是转是转起来了,不过好像转的规律跟预期的有点不大一样
      

  10.   

    投影到x-y平面,自然是这么做了嗯>>> 不过好像转的规律跟预期的有点不大一样
    怎么个不一样法呢
    还有旋转中心轴是什么?
      

  11.   

    我是想让它绕y轴从屏幕里面往外面转
    但是转起来好像是向外面转了一会又往屏幕里面转了
    然后向外转,再向里转.......
    第一次显示的时候我将立方体分别绕x轴和y轴旋转了一点(为了显示立体感)
      

  12.   

    用GDI处理这种东西,就算成功了,刷起来也很慢,还是用DX吧,直接和硬件打交道快一点
      

  13.   

    还是希望用GDI处理
    因为只是一个练习,并不是什么要投入实际使用的东西
    在旋转的过程中怎样判断哪些顶点是不可见的
      

  14.   

    这玩意我很在行
    不过我是用VB.net写的,帮不上你
      

  15.   

    我将各个面都填充了颜色
    经过观察发现只有绕y轴旋转的时候会有时候向正方向有时候向反方向转
    其他旋转轴似乎都没问题
    看来并不是视觉的错觉
    另我的绕y轴旋转的坐标变换公式应该不会有错,因为跟x,z轴都是类似的
    不知道究竟是什么原因引起的
    唉.......难道郁闷结贴算了?