我正在尝试构建太阳系的3D模拟,但我很难找到这个2D python代码的3D等价物
# Compute the force of attraction
f = G * self.mass * other.mass / (d**2)
# Compute the direction of the force.
theta = math.atan2(dy, dx)
fx = math.cos(theta) * f
fy = math.sin(theta) * f
return fx, fy
答案 0 :(得分:1)
2-D代码效率低得离谱。你根本不需要任何三角学。它只是将力的大小f
乘以(dx,dy)方向的单位向量。鉴于您已经知道向量的长度d
,您只需要
fx, fy = f*dx/d, f*dy/d
在3-D
fx, fy, fz = f*dx/d, f*dy/d, f*dz/d