Exemple #1
0
    def __init__(self):

        self.sonne = Sonne()
        self.merkur = Merkur()
        self.venus = Venus()
        self.erde = Erde()
        self.erdmond = Erdmond()
        self.erdmond.setStern(self.sonne.getPosition())
        self.erdmond.setPlanet(self.erde.getPosition())
        self.erdmond.setPlanetGeschwindigkeit(
            self.erde.getRotationsgeschwindigkeit())
        self.mars = Mars()
        self.jupiter = Jupiter()
        self.saturn = Saturn()
        self.uranus = Uranus()
        self.neptun = Neptun()

        self.planeten = []
        self.planeten.append(self.merkur)
        self.planeten.append(self.venus)
        self.planeten.append(self.erde)
        self.planeten.append(self.mars)
        self.planeten.append(self.jupiter)
        self.planeten.append(self.saturn)
        self.planeten.append(self.uranus)
        self.planeten.append(self.neptun)

        #Um die Sonne drehen lassen
        for planet in self.planeten:
            planet.setRotationspunkt(self.sonne.getPosition())

        self.geschwindigkeit = 1

        self.geschwindigkeit_alt = 1
Exemple #2
0
    def __init__(self):

        self.sonne = Sonne()
        self.merkur = Merkur()
        self.venus = Venus()
        self.erde = Erde()
        self.erdmond = Erdmond()
        self.erdmond.setStern(self.sonne.getPosition())
        self.erdmond.setPlanet(self.erde.getPosition())
        self.erdmond.setPlanetGeschwindigkeit(self.erde.getRotationsgeschwindigkeit())
        self.mars = Mars()
        self.jupiter = Jupiter()
        self.saturn = Saturn()
        self.uranus = Uranus()
        self.neptun = Neptun()

        self.planeten = []
        self.planeten.append(self.merkur)
        self.planeten.append(self.venus)
        self.planeten.append(self.erde)
        self.planeten.append(self.mars)
        self.planeten.append(self.jupiter)
        self.planeten.append(self.saturn)
        self.planeten.append(self.uranus)
        self.planeten.append(self.neptun)

        #Um die Sonne drehen lassen
        for planet in self.planeten:
            planet.setRotationspunkt(self.sonne.getPosition())

        self.geschwindigkeit = 1

        self.geschwindigkeit_alt = 1
Exemple #3
0
class Solarsystem(SSI):
    def __init__(self):

        self.sonne = Sonne()
        self.merkur = Merkur()
        self.venus = Venus()
        self.erde = Erde()
        self.erdmond = Erdmond()
        self.erdmond.setStern(self.sonne.getPosition())
        self.erdmond.setPlanet(self.erde.getPosition())
        self.erdmond.setPlanetGeschwindigkeit(
            self.erde.getRotationsgeschwindigkeit())
        self.mars = Mars()
        self.jupiter = Jupiter()
        self.saturn = Saturn()
        self.uranus = Uranus()
        self.neptun = Neptun()

        self.planeten = []
        self.planeten.append(self.merkur)
        self.planeten.append(self.venus)
        self.planeten.append(self.erde)
        self.planeten.append(self.mars)
        self.planeten.append(self.jupiter)
        self.planeten.append(self.saturn)
        self.planeten.append(self.uranus)
        self.planeten.append(self.neptun)

        #Um die Sonne drehen lassen
        for planet in self.planeten:
            planet.setRotationspunkt(self.sonne.getPosition())

        self.geschwindigkeit = 1

        self.geschwindigkeit_alt = 1

    """
    Zeichnet das Solarsystem.
    """

    def zeichnen(self):

        #den Bildschirm loeschen
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

        #macht alles schoen
        glShadeModel(GL_SMOOTH)
        glEnable(GL_CULL_FACE)
        glEnable(GL_DEPTH_TEST)

        #Objekte zeichnen
        self.sonne.zeichnen()
        self.erdmond.zeichnen()
        for planet in self.planeten:
            planet.zeichnen()

    def updateSpeed(self, faktor):

        self.geschwindigkeit = round(self.geschwindigkeit + faktor, 1)

        self.sonne.setGeschwindigkeitsfaktor(self.geschwindigkeit)

        for planet in self.planeten:
            planet.setGeschwindigkeitsfaktor(self.geschwindigkeit)

        self.erdmond.setPlanetGeschwindigkeit(
            self.erde.getRotationsgeschwindigkeit())
        self.erdmond.setGeschwindigkeitsfaktor(self.geschwindigkeit)

    def disableTexture(self):
        glDisable(GL_TEXTURE_2D)

    def enableTexture(self):
        glEnable(GL_TEXTURE_2D)

    def pause(self, switch):

        if switch:
            self.geschwindigkeit_alt = self.geschwindigkeit
            self.geschwindigkeit = 0
            self.updateSpeed(0)
        else:
            self.geschwindigkeit = self.geschwindigkeit_alt
            self.updateSpeed(0)

    def achsenZeichnen(self):
        glLoadIdentity()
        #Rote Achse -- X-Achse
        glLineWidth(2.5)
        glColor3f(1, 0, 0)
        glBegin(GL_LINES)
        glVertex3f(0, 0, 0)
        glVertex3f(100, 0, 0)
        glEnd()

        glLoadIdentity()
        #Gruene Achse -- Y-Achse
        glLineWidth(2.5)
        glColor3f(1, 1, 0)
        glBegin(GL_LINES)
        glVertex3f(0, 0, 0)
        glVertex3f(0, 100, 0)
        glEnd()

        glLoadIdentity()
        #Weisse Achse -- Z-Achse
        glLineWidth(2.5)
        glColor3f(1, 1, 1)
        glBegin(GL_LINES)
        glVertex3f(0, 0, 0)
        glVertex3f(0, 0, 100)
        glEnd()

    def bahnenZeichnen(self):

        for planet in self.planeten:
            self.bahnZeichnen(planet.getPosition()[0])

    def bahnZeichnen(self, radius):
        posx, posy = 0, 0
        sides = 200
        glBegin(GL_LINE_LOOP)
        for i in range(1000):
            cosine = radius * cos(i * 2 * pi / sides) + posx
            sine = radius * sin(i * 2 * pi / sides) + posy
            glVertex3f(cosine, sine, 0)
        glEnd()
Exemple #4
0
class Solarsystem(SSI):

    def __init__(self):

        self.sonne = Sonne()
        self.merkur = Merkur()
        self.venus = Venus()
        self.erde = Erde()
        self.erdmond = Erdmond()
        self.erdmond.setStern(self.sonne.getPosition())
        self.erdmond.setPlanet(self.erde.getPosition())
        self.erdmond.setPlanetGeschwindigkeit(self.erde.getRotationsgeschwindigkeit())
        self.mars = Mars()
        self.jupiter = Jupiter()
        self.saturn = Saturn()
        self.uranus = Uranus()
        self.neptun = Neptun()

        self.planeten = []
        self.planeten.append(self.merkur)
        self.planeten.append(self.venus)
        self.planeten.append(self.erde)
        self.planeten.append(self.mars)
        self.planeten.append(self.jupiter)
        self.planeten.append(self.saturn)
        self.planeten.append(self.uranus)
        self.planeten.append(self.neptun)

        #Um die Sonne drehen lassen
        for planet in self.planeten:
            planet.setRotationspunkt(self.sonne.getPosition())

        self.geschwindigkeit = 1

        self.geschwindigkeit_alt = 1


    """
    Zeichnet das Solarsystem.
    """
    def zeichnen(self):

        #den Bildschirm loeschen
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)

        #macht alles schoen
        glShadeModel(GL_SMOOTH)
        glEnable(GL_CULL_FACE)
        glEnable(GL_DEPTH_TEST)

        #Objekte zeichnen
        self.sonne.zeichnen()
        self.erdmond.zeichnen()
        for planet in self.planeten:
            planet.zeichnen()

    def updateSpeed(self,faktor):

        self.geschwindigkeit = round(self.geschwindigkeit+faktor,1)

        self.sonne.setGeschwindigkeitsfaktor(self.geschwindigkeit)

        for planet in self.planeten:
            planet.setGeschwindigkeitsfaktor(self.geschwindigkeit)

        self.erdmond.setPlanetGeschwindigkeit(self.erde.getRotationsgeschwindigkeit())
        self.erdmond.setGeschwindigkeitsfaktor(self.geschwindigkeit)

    def disableTexture(self):
        glDisable(GL_TEXTURE_2D)

    def enableTexture(self):
        glEnable(GL_TEXTURE_2D)

    def pause(self, switch):

        if switch:
            self.geschwindigkeit_alt = self.geschwindigkeit
            self.geschwindigkeit = 0
            self.updateSpeed(0)
        else:
            self.geschwindigkeit = self.geschwindigkeit_alt
            self.updateSpeed(0)

    def achsenZeichnen(self):
        glLoadIdentity()
        #Rote Achse -- X-Achse
        glLineWidth(2.5)
        glColor3f(1, 0, 0)
        glBegin(GL_LINES)
        glVertex3f(0, 0, 0)
        glVertex3f(100, 0, 0)
        glEnd()

        glLoadIdentity()
        #Gruene Achse -- Y-Achse
        glLineWidth(2.5)
        glColor3f(1, 1, 0)
        glBegin(GL_LINES)
        glVertex3f(0, 0, 0)
        glVertex3f(0, 100, 0)
        glEnd()

        glLoadIdentity()
        #Weisse Achse -- Z-Achse
        glLineWidth(2.5)
        glColor3f(1, 1, 1)
        glBegin(GL_LINES)
        glVertex3f(0, 0, 0)
        glVertex3f(0, 0, 100)
        glEnd()

    def bahnenZeichnen(self):

        for planet in self.planeten:
            self.bahnZeichnen(planet.getPosition()[0])

    def bahnZeichnen(self,radius):
        posx, posy = 0,0
        sides = 200
        glBegin(GL_LINE_LOOP)
        for i in range(1000):
            cosine= radius * cos(i*2*pi/sides) + posx
            sine  = radius * sin(i*2*pi/sides) + posy
            glVertex3f(cosine,sine,0)
        glEnd()