22.11.2014 Views

Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki

Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki

Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

krzywa2.append(pos=(2,1,0), color=color.green)<br />

krzywa2.append(pos=(3,1,0), color=color.yellow)<br />

# krzywa rysowana parametrycznie<br />

n = 16 # ilosc pelnych cykli (zwojow) sprezyny na jednostke dlugosci<br />

r = 2 # promien sprezyny :)<br />

rd = 0.05 # promien drutu<br />

krzywa3=curve(pos=[], radius=0.05)<br />

for i in arange(0.,1.,0.001):<br />

k=2*(1/(i+1)*i)<br />

#print k<br />

c=(k,1,1)<br />

krzywa3.append(pos=(-4+10*i,-2+i*r*cos(n*2*math.pi*i),<br />

i*r*sin(n*2*math.pi*i)), color=color.hsv_to_rgb(c))<br />

#----- uklad trzech strzalek<br />

strzalkax = arrow(pos=(-2,-2,-2), axis=(1,0,0), shaftwidth=1, color=color.red)<br />

strzalkay = arrow(pos=(-2,-2,-2), axis=(0,1,0), shaftwidth=1, color=color.green)<br />

strzalkaz = arrow(pos=(-2,-2,-2), axis=(0,0,1), shaftwidth=1, color=color.blue)<br />

#-----<br />

Jednym z wielu sposobów zastosowania<br />

krzywych jest wizualizacja trajektorii<br />

punktu materialnego lub specyficznych<br />

aspektów ruchu bryły sztywnej. Kolejny<br />

skrypt przedstawia animację kuli<br />

poruszającej się w przestrzeni. Za każdym<br />

razem gdy kula podąża w kierunku<br />

rosnących wartości y do krzywej<br />

(trajectory) jest przypisywany punkt o<br />

współrzędnych równych położeniu kuli.<br />

Zatem poruszająca się kula pozostawi za<br />

sobą ślad w postaci krzywej. Dodatkowo na<br />

płaszczyznach xy, yz, oraz zx są rysowane<br />

rzuty tej trajektorii.<br />

from visual import *<br />

#scene.background=(1.0,1.0,1.0)<br />

scene.range = 3.0<br />

Rysunek 4: Wizualizacja krzywych.<br />

rc=0 # promien krzywych<br />

col=(0.1,0.7,0.7)<br />

trajectory=curve(pos=[],color=col, radius=rc) #trajektoria kuli xyz<br />

c1=curve(pos=[],color=(0.8,0.5,0.1), radius=rc) #rzut na plaszczyzne xy<br />

c2=curve(pos=[],color=(0.2,0.6,0.2), radius=rc) #rzut na plaszczyzne yz<br />

c3=curve(pos=[],color=(0.9,0.1,0.9), radius=rc) #rzut na plaszczyzne zx<br />

a=1.0<br />

b=1.0<br />

c=0.0<br />

kula=sphere(pos=vector(a,c,b), radius=0.05, color=col)<br />

#p1,p2,p3 - prowadnice<br />

szary=(0.7,0.7,0.7)<br />

p1=curve(pos=[(kula.pos),(kula.pos[0],kula.pos[1],0.0)],color=szary, radius=rc)<br />

p2=curve(pos=[(kula.pos),(kula.pos[0],0.0,kula.pos[2])],color=szary, radius=rc)<br />

p3=curve(pos=[(kula.pos),(0.0,kula.pos[1],kula.pos[2])],color=szary, radius=rc)<br />

r = 0.6 # promien okregu<br />

#----- uklad trzech strzalek<br />

p=(0.0,0.0,0.0)<br />

k=0.01<br />

strzalkax = arrow(pos=p, axis=(1,0,0), shaftwidth=k, color=color.red)<br />

9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!