p=(0.0,0.0,0.0) k=0.01 strzalkax = arrow(pos=p, axis=(1,0,0), shaftwidth=k, color=color.red) strzalkay = arrow(pos=p, axis=(0,1,0), shaftwidth=k, color=color.green) strzalkaz = arrow(pos=p, axis=(0,0,1), shaftwidth=k, color=color.blue) #----------------- while b
przykład moja_krzywa.pos[0] jest pozycją pierwszego punktu w moja_krzywa. Możemy również otrzymać krzywą bezpośrednio z listy współrzędnych [1]. Listę taką tworzymy podobnie jak krotkę (sekwencję) zamykając listę współrzędnych w okrągłych nawiasach. I tak na przykład aby narysować kwadrat wystarczy napisać: kwadrat = curve(pos=[(0,0),(0,1),(1,1),(1,0),(0,0)]) Oczywiście (1,1) jest skrótem (1,1,0). Jednakże, nie możemy mieszać ze sobą punktów 2D oraz 3D w jednej liście. Krzywa posiada grubość, definiowaną poprzez parametr radius. Zatem średnica krzywej jest równa podwójnemu promieniowi. krzywa=curve(pos=[(0,0,0), (1,0,0)], radius=0.05) Domyślny promień krzywej wynosi 0, wtedy jest rysowana bardzo cienka krzywa. Jeżeli podamy bardzo małą niezerową wartość, krzywa stanie się prawie niewidoczna dlatego zaleca się używać wartości zero ponieważ wtedy średnica krzywej jest domyślnie równa jednemu pikselowi. Krzywą narysować możemy również z wygenerowanej listy punktów, w tym celu możemy posłużyć się funkcją arange( [start,] stop[, step]) , która zwraca sekwencję liczb. Poniżej przedstawiony jest fragment skryptu pozwalającego narysować sprężynę. # Rysowanie sprężyny c = curve( x = arange(0,20,0.1) ) c.y = sin( 2.0*c.x ) c.z = cos( 2.0*c.x ) Parametryczne rysowanie także nie powinno sprawiać problemu. Jak wspomniane było wczśniej niektóre atrybuty, na przykład color mogą być różne dla każdego punktu w krzywej. Kiedy będziemy chcieli nagle zmienić kolor krzywej, po prostu należy dodać kolejny punkt w miejscu zmiany koloru, lecz o innym kolorze. from visual import * c = curve( pos=[(0,0,0), (1,0,0)], color=color.red ) c.append( pos=(1,1,0) ) # dodanie punktu w kolorze czerwonym c.append( pos=(1,1,0), color=color.blue) # ten sam punkt, lecz kolor niebieski c.append( pos=(0,1,0) ) # dodanie punktu w kolorze niebieskim Poniżej przedstawiony jest pełny skrypt obrazujący niektóre z wymienionych operacji na krzywych. Pierwsza krzywa (krzywa1) jest rysowana z punktów które mogą pochodzić na przykład z obliczeń, kolejna krzywa (krzywa2) zawiera jedynie dwa punkty w kolorze szarym. Do tak stworzonej krzywej dodajemy punkty przy pomocy funkcji append(). Ostatnia krzywa (krzywa3) jest rysowana parametrycznie. Do barwienia krzywej użyto pośrednio schematu HSV (Hue, Saturation, Value – barwa, nasycenie, wartość), który następnie zamieniony został na schemat RGB. from visual import * scene.background=(1.0,1.0,1.0) a=(0,1,0) b=(1,1,0) c=(2,2,0) d=(3,2,0) krzywa1=curve(pos=[a,b,c,d],color=(0.5,0.5,0.5), radius=0.05) krzywa2=curve(pos=[(0,0,0), (1,0,0)],color=(0.5,0.5,0.5), radius=0.05) # dodanie punktow do krzywej 8