读书人

求解答很容易的一道题:怎么让一个点趋

发布时间: 2013-09-28 10:01:20 作者: rapoo

求解答很容易的一道题:如何让一个点趋近另一个点
是这样的:两个坐标已知,A(x1,y2),B(x2,y2),判断AB两点之间的距离是否大于5mm,如果大于,则B点趋近于A点,趋近路线是AB之间的连线,如果小于则不做任何动作。 坐标 移动
[解决办法]
float distance ;
int dx = x2-x1;
int dy = y2-y1;
distance =sqrt*(dx*dx + dy*dy);
float x = x1,y = y1;

for(i=0;i<100;i++)
{

distance= sqrt*((x-x2)*(x-x2)+(y-y2)*(y-y2));
if(distance > 5000)//5mm =5000um 这个按照你的度量单位处理
{
x+=dx*0.01;
y+=dy*0.01;
}
else
break;
}

//这里假设,100步可以结束,假设不是这样修改一下速度即可。
也可以外部死循环,内部判断根据条件退出。
注意这个是模拟,不是计算。
计算的话,很直接。
而且,不一定要匀速前进,根据需要吧。

如果,只是一步一步前进,最好用直线插补。

读书人网 >C++

热点推荐