Я пытаюсь на практике просто симулировать солнечную систему, но у меня небольшая проблема.
Я хочу сохранить данные простой планеты в массиве данных, а затем использовать данные изэтот массив для рисования планет.Однако я не могу заставить свои пользовательские функции правильно использовать данные.
Например, так хранятся данные.
# shape as type, size, orbitradius, startx, starty
solsystem = np.array([
['sun', 2, 0, (screenx // 2), (screeny // 2)],
['planet', 1, 200, 200, 200]
])
Функция, которую я выполняюпытаясь использовать данные в.
class makebody():
def new(btype, size, orbitradius, x, y):
nbody = body()
nbody.type = btype
nbody.size = size
nbody.orbitradius = orbitradius
nbody.x = x
nbody.y = y
nbody.color = (0, 0, 255) #blue
if (btype == 'sun'):
nbody.color = (255, 255, 0) #yellow
return nbody
Я пытался
bvec = np.vectorize(makebody.new)
body = bvec(solsystem)
И
for t, size, orbitradius, x, y in np.ndindex(solsystem.shape):
body = makebody.new(t, size, orbitradius, x, y)
Но ни один из них не дает желаемого результата или работывообще по этому вопросу.Как бы я поступил так, или он даже не подходит для этой работы?