VPython w telegraficznym skrócie

Transkrypt

VPython w telegraficznym skrócie
VPython w telegraficznym
skrócie
Janusz Szwabiński
[email protected]
Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński – p.1/7
VPython
http://vpython.org
biblioteka do tworzenia grafiki 3D w Pythonie
zaawansowane animacje niewielkim nakładem sił
Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński – p.2/7
Rzut poziomy
Cel:
x0
x
x0
y
y0
V0 t
gt2
2
g
y0
v0
y
x
animacja lotu piłki
narysowanie toru piłki
wizualizacja wektora pr˛edkości piłki
Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński – p.3/7
Krok 1 - parametry animacji
x0 , y0 =
10 ,6
yz0=0
v0 = 4 . 0
g = 0 . 9 8 1 # wybor ze wzgledow " e s t e t y c z n y c h "
Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński – p.4/7
Krok 2 - przygotowanie wizualizacji
scena = d i s p l a y ( t i t l e = ’ Rzut poziomy ’ , width =400 , h e i g h t =400)
scena . a u t o s c a l e = 0
ziemia = box ( pos =( x0 , yz0 , 0 ) , s i z e = ( 4 0 , 0 . 1 , 0 ) , c o l o r = c o l o r . blue )
p i l k a = sphere ( pos =( x0 , y0 , 0 ) , r a d i u s = 0 . 5 , c o l o r = c o l o r . red )
p i l k a . v e l o c i t y = v e c t o r ( v0 , 0 , 0 )
wektor = arrow ( pos= p i l k a . pos , a x i s = p i l k a . v e l o c i t y ,
c o l o r = c o l o r . yellow , s h a f t w i d t h = 0 . 3 )
p i l k a . t r a i l = curve ( c o l o r = p i l k a . c o l o r )
Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński – p.5/7
Krok 3 - petla
˛
animacyjna
t =0
while 1 :
rate (100)
p i l k a . pos = [ x0+v0 t , y0 g t t / 2 . 0 , 0 ]
i f p i l k a . y < ziemia . y :
break
p i l k a . t r a i l . append ( pos= p i l k a . pos )
p i l k a . v e l o c i t y = v e c t o r ( v0 , g t , 0 )
wektor . pos= p i l k a . pos
wektor . a x i s = p i l k a . v e l o c i t y
t=t +.01
Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński – p.6/7
Efekt końcowy
Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński – p.7/7