Я моделирую Солнечную систему и использую объектно-ориентированное программирование, чтобы упростить добавление новых планет.
from vpython import *
#gravitational constant
G = 6.674e-11
#seconds in a day
dt = 86400
step = 1
maxstep = 3000
class Planet:
def __init__(self, mass, radius, position, velocity):
self.mass = mass
self.radius = radius
self.position = position
self.velocity = velocity
class Star:
def __init__(self, mass, radius):
self.mass = mass
self.radius = radius
Earth = Planet(5.972e24, 6371, vector(0,1.47e8,0), vector(-29.951,0,0))
Mercury = Planet(3.285e23, 2439.7, vector(0,4.6e7,0), vector(-47.400,0,0))
Sun = Star(1.989e30, 696340)
#acceleration vectors
a_Earth = -G*Sun.mass*Earth.position/mag(Earth.position)**3
a_Mercury = -G*Sun.mass*Mercury.position/mag(Mercury.position)**3
#position vectors
Earth.position = Earth.position + Earth.velocity*dt + 0.5*a_Earth*dt**2
Я пытаюсь использовать V * Команда сферы 1005 * для представления планет и звезды, есть ли способ использовать ее в классе при определении новых?