先上效果:
只有3颗恒星
3+3(3颗行星一开始重叠)
图是用Graphics画的,轨道计算采用经典力学计算(所以导致非常不准)。
以下代码仅供参考,有建议可以提出。
一、首先定义Graphics和坐标系:
Dim a As Graphics
a = Me.CreateGraphics
a.DrawLine(black, x, 0, x, 2 * y)
a.DrawLine(black, 0, y, x * 2, y)
二、然后计算。首先写三颗恒星。
1.先计算距离
r1f = (x20 - x10) * (x20 - x10) + (y20 - y10) * (y20 - y10)
r2f = (x20 - x30) * (x20 - x30) + (y20 - y30) * (y20 - y30)
r3f = (x30 - x10) * (x30 - x10) + (y30 - y10) * (y30 - y10)
r1 = Math.Sqrt(r1f)
r2 = Math.Sqrt(r2f)
r3 = Math.Sqrt(r3f)
2.计算每颗恒星的受力,以x,y轴方向的力表示。
a1m2 = g * m2 / r1
a1m3 = g * m3 / r3
a2m1 = g * m1 / r1
a2m3