auto2
auto.py — text/python-source, 6 KB (6532 bytes)
Dateiinhalt
from visual import * # Szene-Einstellungen scene.userzoom = True # User darf zoomen? scene.userspin = True # User darf rotieren? scene.forward = (-1,-1,-1) # Kameraposition scene.autoscale = True # Autoskalierung aktiv? scene.range = 300 # Kameraabstand von scene.center scene.center = (0,0,0) # Kamerablickpunkt: norm. (0,0,0) scene.up = (0,1,0) # Rotationsachse Kamera: norm. (0,1,0) scene.background = color.white # Hintergrundfarbe scene.fov = 2 # Kamerawinkeloeffnung: norm. 1 scene.fullscreen = False # Vollbild? norm. False scene.title = "Koordinaten" # Fenstertitel scene.width = 1400 # Fensterbreite: norm. 200 scene.height = 1400 # Fensterhoehe: norm 200 scene.x = 50 # x-Koordinate d. Fensters: norm. 0 scene.y = 25 # y-Koordinate d. Fensters: norm. 0 class Car2(frame): def __init__(self,pos=(0,0,0)): frame.__init__(self,pos=pos) self.reifen1 = ring(pos=(-40,5,-15), axis=(0,0,1), radius=5, thickness=2, color=color.black, frame=self) self.reifen2 = ring(pos=(0,5,-15), axis=(0,0,1), radius=5, thickness=2, color=color.black, frame=self) self.reifen3 = ring(pos=(-40,5,15), axis=(0,0,1), radius=5, thickness=2, color=color.black, frame=self) self.reifen4 = ring(pos=(0,5,15), axis=(0,0,1), radius=5, thickness=2, color=color.black, frame=self) self.reifen1i = cylinder(pos=(-40,5,-15),axis=(0,0,1),radius=3, color=color.black, frame=self) self.reifen2i = cylinder(pos=(0,5,-15),axis=(0,0,1),radius=3, color=color.black, frame=self) self.reifen3i = cylinder(pos=(-40,5,15),axis=(0,0,1),radius=3, color=color.black, frame=self) self.reifen4i = cylinder(pos=(0,5,15),axis=(0,0,1),radius=3, color=color.black, frame=self) self.boden = box(pos=(-20,5,0),length=60,height=1, width=26, color=(0,0.5,0), frame=self) self.frontg = box(pos=(-51,10,0),length=10,height=1, width=26,axis=(-0.3,1,0), color=(0,0.5,0), frame=self) self.frontw = box(pos=(-51.01,10,0),length=8,height=1, width=24,axis=(-0.3,1,0), color=color.white, frame=self) self.motorg = box(pos=(-40,16,0),length=25,height=1, width=26,axis=(1,0.1,0), color=(0,0.5,0), frame=self) self.motorw = box(pos=(-40,16.01,0),length=23,height=1, width=24,axis=(1,0.1,0), color=color.white, frame=self) self.scheibe = box(pos=(-24,21,0),length=10,height=1, width=26,axis=(0.8,1,0), color=color.black, frame=self) self.dachw = box(pos=(-6,25,0),length=30,height=1, width=26,axis=(1,0,0), color=color.white, frame=self) self.dachg = box(pos=(-6,25.01,0),length=28,height=1, width=24,axis=(1,0,0), color=(0,0.5,0), frame=self) self.heckug = box(pos=(10,10,0),length=10,height=1, width=26,axis=(0,1,0), color=(0,0.5,0), frame=self) self.heckuw = box(pos=(10.01,10,0),length=8,height=1, width=24,axis=(0,1,0), color=color.white, frame=self) self.hecko = box(pos=(8,20,0),length=10,height=1, width=26,axis=(-0.2,0.5,0), color=(0,0.5,0), frame=self) self.heckos = box(pos=(8.01,20,0),length=8,height=1, width=24,axis=(-0.2,0.5,0), color=color.black, frame=self) seiter = Polygon( [(10,5), (10,15), (6.5,25),(-10,25), (-10,17), (-28,17),(-52,15), (-50,5)] ) straight = [(0,0,-12),(0,0,-13)] extrusion(pos=straight, shape=seiter, color=(0,0.5,0), frame=self) seitel = Polygon( [(10,5), (10,15), (6.5,25),(-10,25), (-10,17), (-28,17),(-52,15), (-50,5)] ) straight = [(0,0,13),(0,0,12)] extrusion(pos=straight, shape=seitel, color=(0,0.5,0), frame=self) fensterl = Polygon( [ (-10,25), (-10,17), (-28,17),(-21,25)] ) straight = [(0,0,13),(0,0,12)] extrusion(pos=straight, shape=fensterl, color=color.black, frame=self) fensterr = Polygon( [ (-10,25), (-10,17), (-28,17),(-21,25)] ) straight = [(0,0,-12),(0,0,-13)] extrusion(pos=straight, shape=fensterr, color=color.black, frame=self) self.vllicht = sphere(pos=(-52,10,-10),material = materials.emissive, frame=self, color=color.yellow, radius=2) self.vrlicht = sphere(pos=(-52,10,10),material = materials.emissive, frame=self, color=color.yellow, radius=2) self.hllicht = sphere(pos=(10,10,-10),material = materials.emissive, frame=self, color=color.red, radius=2) self.hrlicht = sphere(pos=(10,10,10),material = materials.emissive, frame=self, color=color.red, radius=2) self.kennzeichenv = box(pos=(-51,10,0),length=3,height=1, width=8,axis=(-0.3,1,0), color=color.black, frame=self) self.kennzeichenh = box(pos=(10,10,0),length=3,height=1, width=8,axis=(0,1,0), color=color.black, frame=self) blaulichts = cylinder(pos=(-15,25,10), radius=1, length=2, color=color.black, axis=(0,1,0), frame=self) blaulichtl = sphere(pos=(-15,27,10), radius=1,color=color.blue,material = materials.emissive, frame=self) if __name__ == "__main__" : car2=Car2() rate(50) skk="" g=(0,0,0) gs=0.0 while True: skk = scene.kb.getkey() if gs>=0.01: if skk=='w': gs=gs+0.2 elif skk=='s': gs=gs-0.2 if skk=='d': car2.axis=car2.axis.rotate(angle=-pi/32,axis=(0,1,0)) if skk=='a': car2.axis=car2.axis.rotate(angle=pi/32,axis=(0,1,0)) g=-gs*car2.axis car2.pos=car2.pos+g else: if skk=='w': gs=gs+0.2 elif skk=='s': gs=gs-0.2 g=-gs*car2.axis car2.pos=car2.pos+g if __name__ == "__main__" : car2=Auto() car2.setCenter=(40,5,15) v = (0,0,0) g=(0,0,0) gs=0 a=0 d=0 while True: rate(500) skk = scene.kb.getkey() if gs>=0.01: if skk=='w': gs=gs+0.2 elif skk=='s': gs=gs-0.2 if skk=='d': car2.axis=car2.axis.rotate(angle=-pi/32,axis=(0,1,0)) if skk=='a': car2.axis=car2.axis.rotate(angle=pi/32,axis=(0,1,0)) g=-gs*car2.axis car2.pos=car2.pos+g