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