如何画一小火车在平面上跑?轨迹是不定的,先假设是一段直线加一1/4圆,大家有没有好的思路?
火车要自己画,我先用的长方体代替的,可是再从直线往圆上拐弯时,就不好画了。大家有没有自己做过类似的,问一下大家是怎么画的?我是把长方体分成N小块,从尾擦除一小块补到头上。可是到了拐弯处应该怎么算?

解决方案 »

  1.   

    利用二维还是三维坐标转换呢?我画的长方体的视角是定了的,x轴与平面水平夹角0,y是90,z是45,那么再拐弯时,只是简单的变换一角度就行了吗?可是做了不行。而且长方体分成了一小块有闹中间隔的不连续的块,我觉得在拐弯处不是简单的小长文体了,应该是带弧度的长方体吧。
      

  2.   

    再次请教:
      不考虑现实的问题,只考虑模型。地图上有一条线,就想做个小火车在线上跑,有点类似一条小蛇在地上跑一样。关键是做的思路是什么?
      我现在的思路是:地图上的线是由点保存的,直线只存两端的点,曲线存两端点,圆心,弧度(没有做过地图不知道这样存数据,是否可行),做一个ActiveX控件(就是小火车),一开始就把线的所有点付给小火车(如果点有成千上万,可以考虑一部分一部分读取),小火车就可以沿着线运动了。
      注:小火车是三维的,(因为想做成可以随机冒烟的小火车),在转弯时小火车的车体要有转弯的样子。  请教大家,都有什么思路?
      

  3.   

    只要把火车看作质点,问题就简化成为轨迹的函数的表达式确定问题了
    把轨迹表达成,根据时间或者距离提取位置的方式就可以了
    比如,直线很简单:        返回点 = 开始点 + 方向 × 距离
    圆弧也可以,根据圆心,半径和起始点,终结点计算出弧长和角度之间的对应关系,然后定位圆弧上的位置
        当前角度 = 弧长 / 半径 + 起始角度
        返回点 = 圆心点 + 半径 * ( cos ( 当前角度), sin(当前角度))