移动算法的问题
已知 一个对象的当前位置position(x和y),以及该对象的前进方向direction(极坐标angle),前进方向上的移动速度为v, 转动(左转或者右转)速度为angle,对象同时前进和左转,运动了t时间,
求: 该对象在t时刻的位置
[解决办法]
typedef struct {
double x;
double y;
}Pos;
Pos DestPos(Pos cur,double v,double angle,double t)
{
Pos dest;
double offsetx=v*t;
double offsety=angle*t;
dest.x=offsetx*cos(angle)+ offsety*sin(angle);
dest.y=offsetx*sin(angle)+ offsety*cos(angle);
return dest;
}
[解决办法]
极坐标方程很简单
求出当前坐标对应的极坐标;
(row0,theta0)
theta = angle*t+theta0
row = v*t+row0
然后再转换到笛卡尔坐标系就可以啦.
[解决办法]
没那么复杂
怎么都感觉这个曲线是圆
[解决办法]
转动是自转还是还公转?
自转: 移动和旋转独立无关, 可以认为物体先旋转了角度, 然后直接移动
用一个控制矩阵很容易计算出来.
公转: 转速和运动速度,就是决定圆参数的线速度和角速度
用它是可以直接计算出半径的
当前位置, 和运动方向, 以及半径是可以定义出圆心的
再用角速度和时间t合成出弧度, 对应的就可以找到新的位置了
计算位置的时候, 最好是把上述各个公式放在一起,并且做简化处理
然后再直接套用公式计算
[解决办法]
主要还是在于你的坐标位置,和你终点的坐标位置,以及你左转的位置,因为要求出你左转了距离,那样就容易多了,
[解决办法]
就是个园,别被这么一堆名词下倒了,以为是个什么特别的曲线
[解决办法]
先旋转还是先移动?
顺序不一样结果有区别的
[解决办法]
设自转角速度为w, 线速度为v
2 v Sin w△t/2
加速度a = lim ---------------- = w v
△t-> 0 △t
a=wv 加速度 角速度 线速度 符合这个关系的,铁定是圆了...
[解决办法]
关注ing,楼主什么时候时候结贴?
按我的理解是,如果线速度和角速度是不变的,不管这个对象怎么的转和怎么的伸展,我们可以分旋转的角度与伸展的长度两部分求解.知道起始点和角速度后,经过t时间,可以求出对象停止时的角度;知道起始点和线速度后,经过t时间,可以求出对象停止的时伸展长度,结合得出的结果就可以求出对象停止所在的位置.