如何用c++编写运动轨迹程序?

比如设计匀速直线运动、圆周运动、变速运动等,最后能够输出轨迹中位置的数据,方便在matlab中把轨迹画出来。... 比如设计匀速直线运动、圆周运动、变速运动等,最后能够输出轨迹中位置的数据,方便在matlab中把轨迹画出来。 展开
 我来答
百度网友ec9719df53
2018-04-12 · TA获得超过664个赞
知道小有建树答主
回答量:322
采纳率:95%
帮助的人:206万
展开全部
下面是我的第一感觉,不一定是最好的,最好能多去网上看看。
所谓的运动本身在更小的时间t内(例如1ms),就是从某一个坐标,运动到下一个坐标的过程。比如说匀速圆周运动。 当它在某一个点a的时候,具有速度v,加速度为a,那么在相当小的时间t内,它沿着v的方向运动到下一个点b,我们知道a和b的距离为vt。 它的当前速度为v+a*t。如果事先给出初始的坐标点,以及初始的速度,方向,加速度。那么就可以以非常小的时间间隔,计算下一个点的坐标点,以及下一个点的速度,方向和加速度。 最后你会输出一系列的坐标点,两个点的时间间隔为t(这个t是一个非常小的t,由你事先设定好)。当t比较大的时候,如果是匀速圆周运动的话,它可能看起来不是那么圆,点比较稀疏。如果t非常小,那么点就会比较密集,看起来很圆。点越多,程序的复杂度越高,不过我相信一个c++程序跑个几十万个点还是轻轻松松的。一个具有几十万个点的圆,我相信肯定非常的圆。
这个里面 有几点需要注意的地方:
1,速度是矢量速度,不是标量。 也就是说给出的速度是(x,y)这种类型的
2,加速度也是矢量的,这样下一点的速度就非常容易计算了,直接v+at即可。就是矢量的加法
3,如果你对矢量难以把握,也可以用标量,但是运算起来会复杂一些。可能要记录上一点的方向,然后根据v*t得到运行的距离,才能得到当前点的坐标。必须记录上一点的方向,这个重要。而如果是矢量的速度,上一点的方向就不需要记录了,它就是v(这个v带有了方向)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式