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)