Dateianhang 'SchlaengelSchlange.py'

Herunterladen

   1 #! /usr/bin/python
   2 
   3 #
   4 # 3D-Darstellung einer sich bewegenden Python-Schlange mit VPython
   5 # Thomas Lenarz, Juni, 2009
   6 
   7 import visual
   8 
   9 __author__="Thomas Lenarz"
  10 __date__ ="$24.06.2009 21:40:55$"
  11 
  12 
  13 if __name__ == "__main__":
  14 
  15     # Schalter fuer Fullscreen Darstellung
  16     # visual.scene.fullscreen = True
  17 
  18     # Schalter fuer 3D-Darstellung (rot/blau-Brille)
  19     # visual.scene.stereo = 'redblue'
  20 
  21     # Schwanz der Schlange als Sinuskurve
  22     x = visual.arange( 0, 4 * visual.pi, 0.001 )
  23     c = visual.curve( x = x - 2 * visual.pi, y=visual.sin(x), color=visual.color.green, radius=0.1 )
  24 
  25     # Kopf: Elliposid (gruen) + 2 Ellipsoide (weiss) + 2 Ellipsoide (schwarz) als Augen
  26     s = visual.ellipsoid( pos=(2 * visual.pi, 0, 0),length=0.8,height=0.5,width=0.5,color=visual.color.green )
  27     e1 = visual.ellipsoid( pos=(2 * visual.pi + 0.25, 0.1, 0.15 ), height=0.15,width=0.15,length=0.01,color=visual.color.white )
  28     e2 = visual.ellipsoid( pos=(2 * visual.pi + 0.25, 0.1, -0.15 ), height=0.15,width=0.15,length=0.01,color=visual.color.white )
  29     e11 = visual.ellipsoid( pos=(2 * visual.pi + 0.26, 0.11, 0.16 ), height=0.08,width=0.08,length=0.01,color=visual.color.black )
  30     e22 = visual.ellipsoid( pos=(2 * visual.pi + 0.26, 0.11, -0.16 ), height=0.08,width=0.08,length=0.01,color=visual.color.black )
  31 
  32     # Parameter fuer die Zunge (1 Konvex (Rechteck) + 2 Konvexe (Dreieck) fuer die Zungenspitze
  33     Z_LAENGE = 0.8
  34     Z_BREITE = 0.1
  35     Z_SPALTE = 0.2
  36     u = 2 * visual.pi + 0.25
  37     w = -0.05
  38     
  39     f1 = visual.frame()
  40     c1 = visual.convex( frame=f1,pos = [ ( 0,0,-Z_BREITE/2), (0 + Z_LAENGE - Z_SPALTE, 0, -Z_BREITE/2),
  41                                (0 + Z_LAENGE - Z_SPALTE, 0, 0 + Z_BREITE - Z_BREITE/2), (0, 0, 0 + Z_BREITE - Z_BREITE/2)  ], color = visual.color.red )
  42 
  43     c2 = visual.convex( frame=f1,pos = [ (0 + Z_LAENGE - Z_SPALTE, 0, -Z_BREITE/2), (0 + Z_LAENGE - Z_SPALTE, 0, 0 + Z_BREITE/2 - Z_BREITE/2),
  44                                (0 + Z_LAENGE, 0, -Z_BREITE/2)  ], color = visual.color.red )
  45 
  46     c3 = visual.convex( frame=f1,pos = [ (0 + Z_LAENGE - Z_SPALTE, 0, 0 + Z_BREITE - Z_BREITE/2), (0 + Z_LAENGE - Z_SPALTE, 0, 0 + Z_BREITE/2 - Z_BREITE/2),
  47                                (0 + Z_LAENGE, 0, 0 + Z_BREITE - Z_BREITE/2)  ], color = visual.color.red )
  48 
  49     f1.rotate( angle=visual.radians(-12),axis=(0,0,Z_BREITE),origin=(0,0,-Z_BREITE/2) )
  50     f1.pos=(u,w,0)
  51 
  52     # Schlange bewegen.... (Sie lebt.... ;-) )
  53     offset = 0
  54     while True:
  55         visual.rate(20)
  56         c.y=visual.sin( x + offset ) * 0.1 * x
  57         s.y=visual.sin( offset ) * 0.1 * 4 * visual.pi
  58         e1.y=visual.sin( offset ) * 0.1 * 4 * visual.pi
  59         e2.y=visual.sin( offset ) * 0.1 * 4 * visual.pi
  60         e11.y=visual.sin( offset ) * 0.1 * 4 * visual.pi
  61         e22.y=visual.sin( offset ) * 0.1 * 4 * visual.pi
  62 
  63         w = visual.sin( offset) * 0.1 * 4 * visual.pi - 0.1
  64 
  65         f1.y = visual.sin( offset) * 0.1 * 4 * visual.pi - 0.1
  66 
  67         offset += 0.05
  68         if offset >= 2 * visual.pi:
  69             offset = 0
  70 
  71         if visual.scene.mouse.clicked:
  72             print("Mouse clicked")
  73             visual.scene.exit_on_close()
  74             exit()

Gespeicherte Dateianhänge

Um Dateianhänge in eine Seite einzufügen sollte unbedingt eine Angabe wie attachment:dateiname benutzt werden, wie sie auch in der folgenden Liste der Dateien erscheint. Es sollte niemals die URL des Verweises ("laden") kopiert werden, da sich diese jederzeit ändern kann und damit der Verweis auf die Datei brechen würde.
  • [laden | anzeigen] (2014-12-23 16:02:55, 3.1 KB) [[attachment:SchlaengelSchlange.py]]
  • [laden | anzeigen] (2014-12-23 16:04:52, 322.2 KB) [[attachment:VPython.pdf]]
  • [laden | anzeigen] (2014-12-23 16:03:58, 11.7 KB) [[attachment:schlange.png]]
 All files | Selected Files: delete move to page

Sie dürfen keine Anhänge an diese Seite anhängen!