MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   【求助】已知人运动的椭圆方程,matlab求狗狗追人的运动轨迹 (https://www.labfans.com/bbs/showthread.php?t=444)

shncoco 2007-06-25 00:12

【求助】已知人运动的椭圆方程,matlab求狗狗追人的运动轨迹
 
一个慢跑者在平面上沿椭圆跑步,该慢跑者在时间t时刻的坐标为: x=10+20cost,y=20+5sint ,突然有一只狗攻击他. 这只狗从原点出发,以恒定速率20跑向慢跑者,狗的运动方向始终指向慢跑者.求出狗的运动轨迹.

请大家帮忙!

labhunter 2007-06-25 22:40

这个问题有点意思,大家都来想想

chenhuips2 2007-06-29 11:08

2 个附件
[QUOTE=shncoco;1474]一个慢跑者在平面上沿椭圆跑步,该慢跑者在时间t时刻的坐标为: x=10+20cost,y=20+5sint ,突然有一只狗攻击他. 这只狗从原点出发,以恒定速率20跑向慢跑者,狗的运动方向始终指向慢跑者.求出狗的运动轨迹.

请大家帮忙![/QUOTE]

速度20是一直永远无法咬到人的笨狗~

chenhuips2 2007-06-29 18:59

额~
早上敲错一个步长~
所以算错了~
果然不是笨狗~
很快可以咬到人了~
运行下面程序可知:
clear
t=0;
d0=0.1;
r=0.01;
s=20;
gx=0;gy=0;
for i=1:1000
rx(i)=10+20*cos(t+r*(i-1));
ry(i)=20+5*sin(t+r*(i-1));
d(i)=sqrt((rx(i)-gx(i))^2+(ry(i)-gy(i))^2);
if d(i)<d0;
break
end
x=rx(i)-gx(i);
y=ry(i)-gy(i);
gx(i+1)=r*s*x/sqrt(x^2+y^2);
gy(i+1)=r*s*y/sqrt(x^2+y^2);
gx(i+1)=gx(i)+gx(i+1);
gy(i+1)=gy(i)+gy(i+1);
end
plot(gx,gy,rx,ry)


所有时间均为北京时间。现在的时间是 09:47

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.