Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

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)

Funktionsleiste