如何使用pygame以恒定速度制作平滑的圆形轨道? 我如何计算圆上的x,y?
答案 0 :(得分:4)
以给定的半径和速度绕着2d点center
旋转。
参数t
是以秒为单位的时间。
def circular_orbit(center, radius, speed, t):
theta = math.fmod(t * speed, math.PI * 2)
c = math.cos(theta)
s = math.sin(theta)
return center[0] + radius * c, center[1] + radius * s
答案 1 :(得分:1)
尝试使用极坐标。这很自然:)
如果你没有计算足够的帧以使你的轨道看起来平滑,计算3-4个轨道的中间点来绘制较短的线段,而不计算这些点的游戏状态。使这个半径依赖。这也有助于正确的碰撞检测。