Umgebung
Umgebung.py — text/python-source, 2 KB (2143 bytes)
Dateiinhalt
from visual import *
from threading import *
from math import *
import time
from random import random
from Objects import *
# Sonne (km,km,kg):
s_radius=16
s_masse=30
# Merkur (km,d,d):
mer_radius=20
mer_umkreiszeit=40
mer_rotzeit=10
s_abstand_merkur=200
def scale_dist(rohdaten):
"globale Hilfsfunktion: skaliert Entfernungen"
return sqrt(rohdaten)
def scale_rad(rohdaten):
"globale Hilfsfunktion: skaliert Radien"
return sqrt(rohdaten)
class Planet(MovingObject):
"Klasse erstellt Planetenobjekte"
def __init__(self, pos = (0, 0, 0), axis = 0 , radius=mer_radius, color=(1,1,1), umkreiszeit=365, zentrum=None,\
abstand_zentrum=0, material=materials.wood):
MovingObject.__init__(self,vector(0,0,0),vector(0,0,0),col_radius=radius)
self.axis = axis
self.position = vector(pos)
self.planet = sphere(pos = self.position)
self.f = frame(pos=self.position)
self.planet.material = material
self.planet.radius = radius
self.planet.color = color
self.umkreiszeit = umkreiszeit
self.zentrum=zentrum
self.abstand_zentrum = abstand_zentrum
self.x = 90.0
def step(self,dtime):
if self.zentrum:
'''
self.planet.pos = (self.zentrum.f.pos.x+self.abstand_zentrum*cos(self.x/self.umkreiszeit)+self.axis, \
self.zentrum.f.pos.y + self.abstand_zentrum*cos(self.x/self.umkreiszeit)*cos(self.axis/(2*pi)*360)+self.axis ,\
self.zentrum.f.pos.z+self.abstand_zentrum*cos(self.x/self.umkreiszeit)+self.axis)
self.position = vector(self.planet.pos)
'''
self.planet.pos = (self.f.pos.x * sin(self.x+self.axis), \
self.f.pos.y * sin (self.x + self.axis),\
self.f.pos.z * cos(self.x+self.axis))
self.position = vector(self.planet.pos)
self.x += 0.005
#(self.f.pos.y + sin(self.x)*self.abstand_zentrum)*cos(self.axis)