Krogla (sphere)![]() |
Primer tvorbe krogle krogla = sphere (pos=(1,2,1), radius=2)
Primeri sprememb položaja in barve krogle: krogla.pos = (15,11,9) # spremeni položaj (x,y,z)
krogla.x = 15 # sprememba le položaja.x krogla.color = (0,0,1) # krogla bo modra |
Kvader (box)![]() |
Primer tvorbe kvadra kvader = box (pos=(0,0,0), axis=(1,1,1),
length=5, height=3, width=4)
|
Valj (cylinder)![]() |
Primer tvorbe cilindra predmet = cylinder (pos=(0,-0.5,1),
axis=(2,1,-1), radius=1)
Središče enega konca cilindra je pri x=0, y=-0.5, z=1. Smer in dolžino cilindra določa vektor (2,1,-1). Polmer cilindra je 1. Atribut cilindra in njihove privzete vrednosti so: pos (0,0,0), x (0), y(0), z(0), axis (1,0,0), length (1), color (1,1,1) kar je color.white, red (1), green (1), blue (1), up (0,1,0). |
Stožec (cone)![]() |
Stožec ima krožni prerez in se zožuje v vrh. Primer tvorbe stožca stozec = cone(pos=(-3,1,0), axis=(4,0,0),
radius=2)
Stožec ima večino atributov in njihovih privzetih vrednosti kot
cilinder. Poleg tega ima še atribut radius, ki je polmer
širokega
konca stožca. Privzeta vrednost je 1. |
Piramida (Pyramid)![]() |
Primer tvorbe piramide piramida = pyramid (pos=(0,-1,0), size=(4,4,6)) Piramida ima enake atribute kot cilinder. Poleg tega ima še dodatne atribute:. height : višina v smeri y, privzeto 1) width: širina v smeri z, privzeto 1 size (dolžina, višina, širina), privzeto (1,1,1) |
Obroč (ring)![]() |
Primer tvorbe obroča: obroc = ring(pos=(-1,-1,-1),
axis=(0,0,1), radius=3, thickness=1)
Atribut axis vpliva le na smer, ne pa na velikost obroča. Dodatna atributa obroča sta: radius zunanji polmer obroča, privzeto = 1 thickness: debelina obroča(1/10th polmera, če ni drugače določeno) |
Elipsoid (ellypsoid)![]() |
cepelin = ellipsoid (pos=(-0.2,-0.1,0),
length=10, height=0.5, width=0.5, axis=(1,1,1))
Dolg elipsoid je podoben cigari, kratek
spominja na tableto. Atributi elipsoida so enaki atributom kvadra.
|
Krivulja (curve)![]() |
Primer tvorbe krivulje krivulja = curve (pos=[(0,0,0), (1,0,0),
(2,1,0), (1.7,2,0), (0,3,0), (-2,3,0), (-3,1,0), (-3.5,0,0)],
radius=0.2)
Krivulje prikazujejo preme črte med točkami. Krivuljo lahko podamo z eksplicitnim zaporedjem koordinat, vpisanih med oklepaji, tako kot pri vseh Pythonovih seznamih. Nekateri atributi, kot na primer pos (položaj) ali color (barva) se od točke do točke na krivulji lahko razlikujejo. Te atribute hranimo v številčnih poljih. Števila v takih poljih lahko dostopamo z naslavljanjem n-tega elementa v zaporedju Tako je krivulja.pos[0] položaj prve točke v krivulji "krivulja. Več podrobnosti o krivuljah. |
Konveksno telo (convex)![]() |
Primer tvorbe konveksnega telesa telo= convex (pos=[(0,0,0), (1,0,0),
(2,1,0), (1.7,2,0), (0,3,0), (-2,3,0), (-3,1,0), (-3.5,0,0)])
Konveksno telo določimo s seznamom točk, tako kot pri krivulji. Tvorjeno telo bo vedno konveksno, brez vdolbin. Točke, ki bi telo naredile konkavno, se ne upoštevajo. Če so vse točke v isti ravnini, dobimo ploskev namesto telesa. |
Faces |
Atributi, color, in normal izgledajo tako: pos = [ t0v0, t0v1, t0v2, t1v0, t1v1, t1v2, t2v0, t2v1, t2v2, ... ] Pri tem je t0v0 položaj
verteksa 0 trikotnika 0, t0v1 je verteks 1 trikotnika 0, itd. |
Helix![]() |
vzmet = helix(pos=(-2,0,1),
axis=(2,0,0), length=5, radius=2, thickness=0.4)
Objekt helix ima naslednje atribute oziroma
njihove privzete vrednosti: Opomba: atribut
pos za cylinder, arrow, cone, pyramid in helix ustreza
enemu koncu objekta, pri objektih box, sphere ali ring pa to
ustreza središču objekta. |
Puščica (arrow)
|
puscica = arrow (pos=(-1,0,1),
axis=(5,0,0), shaftwidth=1)
Puščica ima enake atribute kot na primer cilinder. Poleg tega pa še naslednje: shaftwidth, privzeto shaftwidth = 0.1*(dolžina puščice) headwidth, privzeto headwidth = 2*shaftwidth headlength, privzeto headlength = 3*shaftwidth |
Tekst (text)![]() |
3D Tekst tvorimo tako: |
Oznaka (label)![]() |
Objekt label omogoča prikaz oznake v okvirju, s črto povezanem z določeno točko. Slika na levi kaže tekst Earth (zemlja), povezan s kroglo, ki naj bi predstavljala zemljo. V tem primeru bi tekst tvorili tako: earthlabel = label
(pos=earth.pos, text='Earth', xoffset=20, yoffset=12,
space=earth.radius, height=10, border=6)
Posebnost objekta "label" je, da je več atributov navedenih v pikslih zaslona in ne v "svetovnih koordinatah". |
frame![]() |
f = frame()
cylinder(frame=f, pos=(0,0,0), radius=0.1, length=1, color=color.cyan) sphere(frame=f, pos=(1,0,0), radius=0.2, color=color.red) f.axis = (0,1,0) f.pos = (-1,0,0) Privzeto ima , frame() pozicijo (0,0,0) in os
usmerjeno v smeri koordinate x (1,0,0). |
Objekte lahko poenostavljeno določimo z naslednjimi privzetimi vrednostmi:
cylinder() je enako kot cylinder(pos=(0,0,0), axis=(1,0,0), radius=1)
arrow() je enako kot arrow(pos=(0,0,0), axis=(1,0,0), radius=1)
cone() je enako kot cone(pos=(0,0,0), axis=(1,0,0), radius=1)
pyramid() je enako kot pyramid(pos=(0,0,0), size=(1,1,1), axis=(1,0,0))
sphere() je enako kot sphere(pos=(0,0,0), radius=1 )
ring() je enako kot ring(pos=(0,0,0), axis=(1,0,0), radius=1)
box() je enako kot box(pos=(0,0,0), size=(1,1,1))
curve() vzpostavi "prazno" krivuljo, kateri lahko točke priključujemo (append)
convex() vzpostavi "prazen" objekt, kateremu lahko točke priključujemo
frame() vzpostavi frame s pos=(0,0,0) and axis=(1,0,0)