gamemaker吧 关注:13,658贴子:95,203
  • 4回复贴,共1

新人求助想让一个物体做匀速圆周运动。我一开始用的是让这个物体

只看楼主收藏回复

新人求助
想让一个物体做匀速圆周运动。我一开始用的是让这个物体的gravity指向圆心,用a=v^2/r做的。但这样做一是它画不圆(有一定误差)二是很有局限性。求助大佬们有没有更好的方法


来自iPhone客户端1楼2020-08-07 09:28回复
    最好还能求出它转动的周期


    来自iPhone客户端2楼2020-08-07 09:29
    回复
      如果是恒定的话,直接用x=cos(t),y=sin(t),t是一个随时间增加的变量就可以了。


      IP属地:江苏来自Android客户端3楼2020-08-07 10:00
      回复
        首先,LZ需要知道,GM的运作机制是按步进行时间离散的。
        那么,匀速“圆周”运动,在GM里最接近的应该是“匀速正N边形”运动。当然,某些参数下可能“N不是整数”(不准确,但大概就是这么个意思)。如果是用“加速度指向圆心”来做,理论上可以,但问题就出在”速度方向并不与当前位置-圆心的连线垂直“这个问题上。
        运用三角函数的话,速度向圆内便宜的角度也不是不能算,但实在是太麻烦了。一般建议GM里做圆周运动时使用直接坐标操作的模式(区别于速度操作/加速度操作)。3楼的给的基础代码再增加圆心/半径两个参数后就能直接用,周期当然就是相位t从0到2π需要的时间。


        IP属地:北京4楼2020-08-07 11:52
        回复
          直接用lengthdir_x lengthdir_y


          IP属地:广东5楼2020-08-07 21:02
          回复