85
JU Univerzitet u Tuzli Prirodno-Matematiˇ cki fakultet Odsjek: Matematika Diplomski rad 3D Grafika u L A T E X-u Juni, 2009. Amela Halidovi´ c

3DGrafika

Embed Size (px)

Citation preview

Page 1: 3DGrafika

JU Univerzitet u TuzliPrirodno-Matematicki fakultetOdsjek: Matematika

Diplomski rad

3D Grafika u LATEX-u

Juni, 2009. Amela Halidovic

Page 2: 3DGrafika

Mentor rada: Nermin Okicic, docent

Rad ima 78 stranica.Redni broj diplomskog rada:

Page 3: 3DGrafika

⋆ Rezime

U ovom diplomskom radu je obraden problem 3D grafike u LATEX-u, bazi-rajuci se na pstricks paketu pst-3dplot.

U prvom poglavlju je dat matematicki osvrt na samo funkcionisanje paketapst-3dplot. U nastavku su definisane i poblize objasnjene brojne naredbe zacrtanje koordinatnog sistema, osnovnih 3D grafickih objekata (tacka, linija,trougao, paralelogram, paralelopiped), slozenih 3D grafickih objekata (elipsa,kruznica, cilindar, paraboloid, kugla). Ipak, akcent je na petom poglavlju,koje je posveceno grafickom predstavljanju matematickih funkcija.

U dodatku je prezentiran paket pst-light3d, kao i osnovne karakteristikeostalih pstricks paketa za crtanje trodimezionalnih grafickih objekata.

Page 4: 3DGrafika

⋆ Summary

In this thesis is elaborated the problem of 3D graphics in LATEX. Thiselaboration is based on pstricks package pst-3dplot.

The first chapter is giving a mathematical view on how this package works.Hereafter are defined and closely explained many macros for drawing thecoordinate axes, basic 3D graphical objects (dot, line, triangle, square, box),complex 3D graphical objects (ellipse, circle, cylinder, paraboloid, sphere).However, the accent is on the fifth chapter, that is dedicated to the plottingmathematical functions.

In the appendix is introduced pst-light3d package, as well as basiccharacteristics of the other pstricks packages for plotting three dimensionalgraphical objects.

Page 5: 3DGrafika

3D Grafika u LATEX-u

PST-3dplotPSTricks paket za crtanje 3D grafickih objekata

Page 6: 3DGrafika

Sadrzaj

1 PST-3dplot sa stanovista Matematike 1

1.1 3D koordinatni sistem . . . . . . . . . . . . . . . . . . . . . . 11.2 Paralelna projekcija . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Kako pokrenuti 3D crtanje? . . . . . . . . . . . . . . . . . . . 7

2 Koordinatni sistem 8

2.1 Crtanje koordinatnog sistema . . . . . . . . . . . . . . . . . . 82.1.1 Parametri Alpha i Beta . . . . . . . . . . . . . . . . . 112.1.2 Parametri za numeraciju koordinatnih osa . . . . . . . 132.1.3 Parametri za rotaciju . . . . . . . . . . . . . . . . . . . 18

2.2 3D koordinatna mreza . . . . . . . . . . . . . . . . . . . . . . 202.3 Put naredbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.3.1 \pstThreeDPut . . . . . . . . . . . . . . . . . . . . . . 252.3.2 \pstPlanePut . . . . . . . . . . . . . . . . . . . . . . 26

2.4 Povezivanje objekata . . . . . . . . . . . . . . . . . . . . . . . 29

3 Osnovni 3D graficki objekti 31

3.1 Tacka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2 Linija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.3 Trougao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.4 Paralelogram . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.5 Paralelopiped . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4 Slozeni 3D graficki objekti 42

4.1 Elipse i kruznice . . . . . . . . . . . . . . . . . . . . . . . . . . 424.1.1 Elipsa . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.1.2 Kruznica . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2 Povrsi drugog reda . . . . . . . . . . . . . . . . . . . . . . . . 474.2.1 Cilindar . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2.2 Paraboloid . . . . . . . . . . . . . . . . . . . . . . . . . 494.2.3 Sfera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Page 7: 3DGrafika

SADRZAJ ii

5 Matematicke funkcije 52

5.1 Funkcije zadane eksplicitno . . . . . . . . . . . . . . . . . . . . 525.1.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.2 Funkcije zadane parametarski . . . . . . . . . . . . . . . . . . 615.2.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . 63

A Graficko predstavljanje datoteka podataka 69

A.1 Naredbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

B Paket PST-light3d 71

B.1 Naredba \PstLightThreeDText . . . . . . . . . . . . . . . . 71B.1.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . 71

B.2 Naredba \PstLightThreeDGraphic . . . . . . . . . . . . . . 73B.2.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . 73

C Ostali PSTricks 3D paketi 76

C.1 pst-solides3d . . . . . . . . . . . . . . . . . . . . . . . . . . 76C.2 pst-ob3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77C.3 pst-vue3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77C.4 pst-gr3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77C.5 pst-fr3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77C.6 pst-circ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Page 8: 3DGrafika

Poglavlje 1

PST-3dplot sa stanovista

Matematike

Dobro poznati pstricks paket nudi odlicne makro naredbe koje pruzaju mogu-

cnost unosenja manje ili vise slozenih grafika u dokument. pstricks paket je

osnova za nekoliko drugih dodatnih paketa, koji su uglavnom nazvani pst-xxx,

kao pst-plot. Postoji nekoliko paketa za crtanje trodimenzionalnih grafickih

objekata. Jedan od njih je pst-3dplot, koji je vise slican pst-plot paketu za

dvodimenzionalne objekte i matematicke funkcije.

1.1 3D koordinatni sistem

Prilikom crtanja objekata u dvodimenzionalnom ili trodimenzionalnom si-stemu potreban nam je referentni okvir prema kome specificiramo lokacijui velicinu objekta kojeg crtamo. Za dvodimenzionalno crtanje, referentniokvir je zapravo pravougli koordinatni sistem u ravni, koji se sastoji iz dvijeperpendikularne (presjecaju se pod pravim uglom) ose, x i y.

Za trodimenzionalno crtanje potrebno je dvodimenzionalni koordinatnisistem prosiriti trecom dimenzijom koja daje komponentu dubine. Tako seuvodi nova osa z koja je perpendikularna na x i y ose i predstavlja linijukoja se crta ka posmatracu. Ose x, y i z, koje se sijeku u jednoj tackii perpendikularne su medusobno, predstavljaju trodimenzionalni pravouglikoordinatni sistem i referentni okvir za 3D crtanje. Na slici 1.1 je predstavljentakav 3D koordinatni sistem, gdje y osa stremi pravo ka posmatracu.

x y

z

Slika 1.1: 3D koordinatni sistem (y osa izvire iz ravni papira)

Page 9: 3DGrafika

1.2 Paralelna projekcija 2

Medutim, kako se y osa ne vidi, ovakav polozaj koordinatnog sistemane daje zeljeni osjecaj ‘prostornosti’ na papiru. Zbog toga se uvode uglovirotacije 3D koordinatnog sistema, ugao horizontalne i ugao vertikalne rotacije.

Ako zarotiramo pogled na koordinatni sistem sa slike 1.1 horizontalno uodnosu na z osu za ugao α i vertikalno u odnosu na x osu za ugao β, imatcemo koordinatni sistem na slici 1.2.

xy

z

Slika 1.2: Zarotirani 3D koordinatni sistem

Ugao α je ugao horizontalne, a ugao β ugao vertikalne rotacije 3D sistema.Dakle, α je ugao izmedu x ose i horizontalne ose ravni papira, a β ugao izmeduz ose i vertikalne ose ravni papira. Naravno, pod pozitivnom rotacijom sepodrazumijeva rotacija u smjeru suprotnom kretanju kazaljki na satu.

1.2 Paralelna projekcija

Od ranije je poznato kako se specificira polozaj u 3D prostoru pomocupravouglih koordinata. Medutim, bez odbzira na to kako mozete da ubje-dite svoje oko, na papiru postoje samo dvije dimenzije. Time se postavljapitanje: Kako LATEX prevodi 3D pravougle koordinate u dvodimenzionalnekoje mogu da se crtaju na papiru? Kratak odgovor bi bio “Trigonometrijai prosta manipulacija matricom”. Ipak, to i nije tako jednostavno i bice unastavku detaljno objasnjeno.

Prva cinjenica koju treba shvatiti jeste projekcija, kojom se 3D koordinatespljoste, odnosno projektuju na 2D povrsinu (ekran ili ravan papira). To jekao crtanje flomasterom obrisa nekog objekta na staklu koje se nalazi isprednjega. Kada pomjerimo staklo, na njemu se jos mogu vidjeti konture objektasa svim njegovim ugaonim ivicama. Na slici 1.3, kuca je projektovana naravan komad stakla.

Page 10: 3DGrafika

1.2 Paralelna projekcija 3

Slika 1.3: Projekcija 3D odjekta na 2D povrsinu

Zamislimo sada 3D koordinatni sistem koji je od ravni papira zarotiranza horizontalni ugao rotacije α i vertikalni ugao rotacije β. Tacka u ovom 3Dsistemu je odredena svojim 3D koordinatama. Njena ortogonalna projekcijana ravan papira za posmatraca je tacka koju ne vidi i vizuelno dozivljavakao tacku koja se nalazi na papiru ravno iza projektovane tacke. Ako sveovo predstavimo na papiru, dobit cemo sliku na kojoj ce se polazna tackai njena ortogonalna projekcija poklapati. Upravo ovo je osnovni konceptna kome se zasniva 3D crtanje u LATEX-u upotrebom pst-3dplot paketa:tacka specificirana 3D koordinatama se prvo transformise u tacku sa 2Dkoordinatama (svoju ortogonalnu projekciju), koja se onda moze pradstavitina dvodimenzionalnoj povrsini kakva je ravan papira.

xE

yE

x y

z

bP (x, y, z)P ∗(x∗, y∗)

α α

α

αx·sinα

y ·cosαx·cosαy ·sinαx·cosα

y ·sinα − x·cosα

y ·cosα + x·sinα

L M N

Pxy

x∗

y∗

Slika 1.4: Duzine u 2D i 3D sistemima

Page 11: 3DGrafika

1.2 Paralelna projekcija 4

Na slici 1.4 prikazana je tacka P (x, y, z) u trodimenzionalnom koordina-tnom sistemu (x, y, z) sa transformacijom u P ∗(x∗, y∗), tacku u dvodimenzio-nalnom koordinatnom sistemu (xE, yE) ravni papira. Kakve zapravo koordi-nate ima tacka P ∗ u ravni (xE, yE)?

Spustanjem okomica sa koordinatnih osa x i y na yE osu formiraju se dvapravougla trougla sa hipotenuzama x i y. Zbog jednakosti ostrih uglova sparalelnim, odnosno ortogonalnim kracima, uoceni pravougli trouglovi imajupo jedan ostar ugao jednak uglu α. Sada su katete pravouglih trouglova x·sinαi x·cosα, odnosno y ·sinα i y ·cosα za drugi trougao.

Dvodimenzionalna x koordinata x∗ tacke P ∗ je razlika dvije duzine LN iLM . Uocimo pravougli trougao △MNPxy. Njegova hipotenuza je NPxy = x,a stranice NPxy i MN ortogonalne na y, odnosno yE osu, te su uglovi ∠NLKi α jednaki kao dva ostra ugla s ortogonalnim kracima. Zbog toga je duzinaMN jednaka x·cosα, i za koordinatu x∗ dobijamo

x∗ = y ·sinα − x·cosα.

Jasno je da ce koordinata x∗ uvijek zavisiti samo od horizontalnog uglarotacije α 3D sistema, jer se vertikalna rotacija vrsi okomito na horizontalnuosu xE i izlazi iz ravni papira. Zbog toga, vertikalna rotacija utice samo nay∗ koordinatu tacke P ∗. Dakle, ako nema vertikalne rotacije 3D sistema, tj.ako je β =0, onda je y∗=z. Ako je ugao β veci od 0 ◦, onda samo koordinatay∗ ima drugu vrijednost.

Ugao β se lijepo vidi na slici 1.5, koja potice od slike 1.1 kada se koordi-natni sistem zarotira horizontalno za ugao −90 ◦ i vertikalno za ugao β.

xE

yE

y

z

β

z ·cosβ

y ·cosα + x·sinα

(y ·cosα + x·sinα)·sinβ −(y ·cosα + x·sinα)·sinβ

Slika 1.5: 3D sistem za α=−90 ◦ i β>0 (x osa ulazi u ravan papira)

Ortogonalna projekcija z koordinate tacke P na yE osu odsjeca na njojduzinu z ·cosβ. Ali, to jos uvijek ne odreduje koordinatu y∗.

Page 12: 3DGrafika

1.2 Paralelna projekcija 5

Okomice spustene sa koordinatnih osa x i y na osu yE na slici 1.4 predsta-vljaju i duzine u (x, y) ravni. Isto vrijedi i za duzinu y · cosα + x · sinα .Vertikalnom rotacijom 3D sistema duzina y·cosα +x·sinα, kao i ravan (x, y),zaklapa ugao β sa osom xE (uglovi s ortogonalnim kracima). Na slici 1.5,duzina y·cosα + x·sinα se i vidi na y osi, zbog polozaja 3D sistema (x, y, z).Duzina okomice povucene sa kraja te duzine u ravni (x, y) na osu xE jednakaje (y ·cosα + x ·sinα) ·sinβ. Kako se ova duzina nalazi ispod xE ose ona jenegativna, pa je konacno

y∗ = z ·cosβ − (y ·cosα + x·sinα)·sinβ.

Tako dobijamo sljedece jednacine za transformaciju 3D pravouglih koor-dinata tacke u 2D koordinate u ravni (xE, yE):

x∗ = −x·cosα + y ·sinαy∗ = −(x·sinα + y ·cosα)·sinβ + z ·cosβ

(1.1)

ili, zapisano u matricnom obliku:

(

x∗

y∗

)

=

(

− cosα sinα 0− sinα sinβ − cosα sinβ cosβ

)

·

x

y

z

. (1.2)

Prilikom svakog crtanja trodimenzionalnih objekata pomocu pst-3dplot

paketa, LATEX vrsi transformacije 3D koordinata u dvodimenzionalne kojepotom predstavlja na papiru.

x y

z

b

Slika 1.6

(1,2,2)1

2

-1

1 2-1-2

x y

z

b

Slika 1.7

x∗

y∗ (x∗, y∗)

Na slici 1.6 nacrtan je 3D koordinatni sistem, sa uglovima rotacije α=45 ◦

i β = 30 ◦, te tacka sa koordinatama (1, 2, 2) pomocu naredbi pst-3dplotpaketa. Dvodimenzionalne koordinate tacke (1, 2, 2), izracunate pomocujednacina (1.1), su:

Page 13: 3DGrafika

1.2 Paralelna projekcija 6

x∗ = −1 ·√

2

2+ 2 ·

√2

2≈ 0.7071 ,

y∗ = −(√

2

2+ 2 ·

√2

2

)

· 1

2+ 2 ·

√3

2≈ 0.6714 .

Na slici 1.7 prikazan je i 2D koordinatni sistem, u kojem su koordinate tacke(1, 2, 2) upravo izracunate (x∗, y∗).

Na narednoj slici predstavljena je jos jedna ilustracija. Na prvom crtezusu nacrtane tacke (1, 2, 2) i (2, 1, 3) u 3D sistemu. Koristeci formule (1.1) do-bijaju se transformacije ovih tacaka u dvodimenzionalne tacke sa pribliznimkoordinatama (0.7071, 0.6714) i (−0.7071, 1.5374), koje se na prvom crtezunalaze ravno ispod tacaka (1, 2, 2) i (2, 1, 3), tj. projektovana tacka i njenapojekcija se poklapaju. Zbog toga je na drugom crtezu 3D koordinatni si-stem pomjeren (rotacijom) iz polozaja koji ima na prvom crtezu, te se takojasno vide original i njegova transformacija.

1

2

-1

1 2-1-2

x y

z

b

b(2,1,3)

(1,2,2)1

2

-1

1 2-1-2

x

y

z

b

b(2,1,3)

(1,2,2)

qP

qP

Slika 1.8

Ovdje se moze uociti da su vektori koji ilustruju projekciju paralelni, pase stoga svaka tacka duzi cije su krajnje tacke (1, 2, 2) i (2, 1, 3) projektujeu neku tacku duzi u ravni papira, sa krajnjim tackama (0.7071, 0.6714) i(−0.7071, 1.5374).

Na osnovu svega izlozenog moze se zakljuciti da su uglovi horizontalne ivertikalne rotacije 3D sistema neophodni za svako 3D crtanje. Zbog toga, iukoliko ih ne precizirate, oni vec imaju svoju unaprijed definisanu vrijednost(po default-u) unutar pst-3dplot paketa. Stoga, kako svaka makro naredbapst-3dplot paketa zahtijeva vrijednosti ovih uglova, svaku njihovu promjenuje najbolje uvoditi pomocu \psset naredbe, jer tako svaka promjena postaje

Page 14: 3DGrafika

1.3 Kako pokrenuti 3D crtanje? 7

globalna unutar okruzenja za koje je predvidena. Ova veoma vazna cinjenicace ovdje mozda biti pomalo nejasna, ali ce se zato u nastavku, kada za todode pravo vrijeme, na nju skrenuti paznja citaoca . . .

1.3 Kako pokrenuti 3D crtanje?

Sve pocinje aktivacijom paketa pst-3dplot u preambuli dokumenta, nare-dbom:

⋆ \usepackage{pst-3dplot} ⋆

Prvi korak svake graficke ilustracije jeste postavljenje referentnog okvira,odnosno crtanje koordinatnog sistema u odnosu na koji se objekti pozicioni-raju. Zbog toga ce sljedece poglavlje biti u potpunosti posveceno koordina-tnom sistemu.

pst-3dplot je pstricks paket za crtanje 3D grafickih objekata, te sestoga svako crtanje pokrece unutar pspicture okruzenja, koje se definise navec poznati nacin. Naravno, sve pstricks opcije su moguce, kao i kombino-vanje dvodimenzionalnog i trodimenzionalnog crtanja.

Page 15: 3DGrafika

Poglavlje 2

Koordinatni sistem

2.1 Crtanje koordinatnog sistema

Naredba za crtanje koordinatnog sistema je

⋆ \pstThreeDCoor[Opcije ] ⋆

Upotreba ove neredbe, uz izostavljanje bilo kakvih opcija, daje sljedecirezultat:

x y

z

\begin{pspicture}(-3.3,-2.2)(2,4.3)

\pstThreeDCoor

\end{pspicture}

Jedina specijalna opcija je drawing=true|false, koja omogucava crtanjekoordinatnih osa. Default vrijednost ove opcije je true. Prilikom gotovosvakog 3D crtanja, za inicijalizaciju 3D koordinatnog sistema potrebno jekoristiti ovu naredbu. Ako je pak ona postavljena na false, onda su sveopcije za podesavanje izgleda koordinatnih osa takoder onemogucene.

U tablici 2.1 prikazani su svi novi parametri za podesavanje izgleda 3Dkoordinatnog sistema, kao i unaprijed definisane vrijednosti tih parametara

Page 16: 3DGrafika

2.1 Crtanje koordinatnog sistema 9

Tablica 2.1: Parametri za 3D koordinatni sistem

Naziv parametra Moguce vrijednosti Default

Alpha <ugao> 45

Beta <ugao> 35

xMin <broj> -1

xMax <broj> 4

yMin <broj> -1

yMax <broj> 4

zMin <broj> -1

zMax <broj> 4

nameX <string> $x$

spotX <ugao> 180

nameY <string> $y$

spotY <ugao> 0

nameZ <string> $z$

spotZ <ugao> 90

IIIDticks false|true false

Dx <broj> 1

Dy <broj> 1

Dz <broj> 1

IIIDxTicksPlane xy|xz|yz xy

IIIDyTicksPlane xy|xz|yz yz

IIIDzTicksPlane xy|xz|yz yz

IIIDticksize <broj> 0.1

IIIDxticksep <broj> -0.4

IIIDyticksep <broj> -0.2

IIIDzticksep <broj> 0.2

RotX <ugao> 0

RotY <ugao> 0

RotZ <ugao> 0

RotSequence xyz|xzy|yxz|yzx|zxy|zyx xyz

koje LATEX postavlja u slucaju izostanka njihovog preciziranja (default vri-jednosti).

Ne postoje ogranicenja za uglove ili za minimalne i maksimalne vrijednostina koordinatnim osama. Sve pstricks opcije su moguce, takoder.

Promjene minimalne i maksimalne vrijednosti na odredenoj koordina-tnoj osi vrse se parametrima xMin, xMax, yMin, yMax, zMin, zMax. Takoderje moguce promijeniti oznake koordinatnih osa (parametri nameX, nameY,

Page 17: 3DGrafika

2.1 Crtanje koordinatnog sistema 10

nameZ). Pozicioniranje oznake u odnosu na samu koordinatnu osu vrsi separametrima spotX, spotY i spotZ. Odabirom odgovarajucih vrijednosti(uglova) za ove parametre se zapravo vrsi izbor uglova koje zelimo da zakla-paju koordinatna osa i oznaka, te se na taj nacin vrsi njeno pozicioniranje.Sve pomenute opcije ilustruju primjeri koji slijede, kao i nacin na koji se vrsipromjena debljine i boje koordinatnih osa pomocu pstricks parametara.

a b

c\begin{pspicture}(-2.3,-2.3)(2.5,2.5)

\pstThreeDCoor[

linewidth=1pt,linecolor=WildStrawberry,

xMin=-2,xMax=2,

yMin=-2,yMax=2,

zMin=-2,zMax=2,

nameX=$a$,nameY=$b$,nameZ=$c$]

\end{pspicture}

ab

c \begin{pspicture}(-2.2,-2)(3,3)

\pstThreeDCoor[

linewidth=1.2pt,linecolor=DarkViolet,

xMin=-2,xMax=3,

yMin=-2,yMax=3,

zMin=-2,zMax=3,

nameX=$a$,spotX=330,

nameY=$b$,spotY=80,

nameZ=$c$,spotZ=-160]

\end{pspicture}

v t

a \begin{pspicture}(-2.25,-1.7)(3,3.4)

\pstThreeDCoor[

linewidth=1pt,linecolor=MidnightBlue,

xMin=0,xMax=3,

yMin=0,yMax=3,

zMin=0,zMax=3,

nameX=$v$,spotX=90,

nameY=$t$,spotY=90,

nameZ=$a$,spotZ=90]

\end{pspicture}

Preostali parametri iz tablice 2.1 bit ce pojasljeni kroz naredne odjeljke.

Page 18: 3DGrafika

2.1 Crtanje koordinatnog sistema 11

2.1.1 Parametri Alpha i Beta

U odjeljku 1.1 definisani su uglovi rotacije Dekartovog 3D koordinatnog si-stema, ugao horizontalne i ugao vertikalne rotacije. Njihov izuzetni znacajza 3D crtanje u LATEX-u pomocu pst-3dplot paketa opravdan je u odjeljku1.2. Naime, pomocu tih uglova se 3D koordinate prevode u dvodimenzionalnekoje LATEX ctra na papiru. Zbog toga je jasno da njihovo preciziranje morabiti sastavni i obavezni dio opcionih argumenata \pstThreeDCoor naredbe.Parametri Alpha i Beta predstavljaju upravo te uglove, gdje je Alpha ugaohorizontalne, a Beta ugao vertikalne rotacije.

Sljedeci primjeri pokazuju kako se izmjenom uglova Alpha i Beta vrsiizmjena pogleda na isti koordinatni sistem.

x y

z\begin{pspicture}(-3.3,-1.5)(1,3)

\pstThreeDCoor[

linewidth=1.2pt,linecolor=DarkViolet,

xMin=-1,xMax=2.5,

yMin=-1,yMax=2.5,

zMin=-1,zMax=2.5,

Alpha=0,Beta=0]

\end{pspicture}

x y

z\begin{pspicture}(-2.4,-1.5)(1,3)

\pstThreeDCoor[

linewidth=1.2pt,linecolor=violet,

xMin=-1,xMax=2.5,

yMin=-1,yMax=2.5,

zMin=-1,zMax=2.5,

Alpha=40,Beta=0]

\end{pspicture}

x y

z \begin{pspicture}(-2.4,-1.5)(1,3)

\pstThreeDCoor[

linewidth=1.2pt,linecolor=MidnightBlue,

xMin=-1,xMax=2.5,

yMin=-1,yMax=2.5,

zMin=-1,zMax=2.5,

Alpha=45,Beta=30] % default vrijednosti

\end{pspicture}

Page 19: 3DGrafika

2.1 Crtanje koordinatnog sistema 12

xy

z\begin{pspicture}(-3,-1.5)(1,3)

\pstThreeDCoor[

linewidth=1.2pt,linecolor=MidnightBlue,

xMin=-1,xMax=2.5,

yMin=-1,yMax=2.5,

zMin=-1,zMax=2.5,

Alpha=-60,Beta=0]

\end{pspicture}

x

y

z \begin{pspicture}(-3,-1.5)(1,3)

\pstThreeDCoor[

linewidth=1.2pt,linecolor=violet,

xMin=-1,xMax=2.5,

yMin=-1,yMax=2.5,

zMin=-1,zMax=2.5,

Alpha=-60,Beta=30]

\end{pspicture}

x

yz

\begin{pspicture}(-2.8,-1.5)(1,3)

\pstThreeDCoor[

linewidth=1.2pt,linecolor=DarkBlue,

xMin=-1,xMax=2.5,

yMin=-1,yMax=2.5,

zMin=-1,zMax=2.5,

Alpha=30,Beta=-60]

\end{pspicture}

x

y

z\begin{pspicture}(-1.6,-1.5)(1,3)

\pstThreeDCoor[

linewidth=1.2pt,linecolor=WildStrawberry,

xMin=-1,xMax=2.5,

yMin=-1,yMax=2.5,

zMin=-1,zMax=2.5,

Alpha=90,Beta=25]

\end{pspicture}

Page 20: 3DGrafika

2.1 Crtanje koordinatnog sistema 13

2.1.2 Parametri za numeraciju koordinatnih osa

Numeracija koordinatnih osa postize se parametrom IIIDticks. Mogucevrijednosti za ovaj parametar su false|true, a default vrijednost je false.Izborom opcije true za vrijednost ovog parametra, koordinatne ose dobi-jaju numeraciju i podione oznake. Medutim, preciziranje vrijednosti ovogparametra nije neophodno. Naime, samo navodenje ovog parametra u listiopcionih argumenata naredbe \pstThreeDCoor LATEX ce interpretirati kao iz-bor opcije true za njegovu vrijednost. Tako se izostavljanje ovog parametrainterpretira kao i opcija IIIDticks=false. Naredni primjer ilustruje upravoreceno.

x y

z

1.02.0

3.0

-1.0

1.02.0

3.0

-1.0

1.0

2.0

3.0

-1.0

\begin{pspicture}(-3.3,-2.3)(2,4.5)

\pstThreeDCoor[

IIIDticks,

linewidth=1pt,

linecolor=DarkViolet!80]

\end{pspicture}

Podioni razmaci na koordinatnim osama, kao i pozicija numeracije i njenavelicina u prethodnom primjeru imaju default vrijednosti. Ipak, svaka odovih karakterizacija 3D sistema moze biti promjenjena do zeljenog oblika.

Velicina fonta kojim se vrsi numeracija na osama moze se promijenitipredefinisanjem makro naredbe na sljedeci nacin:

\def\psxyzlabel#1{\bgroup\scriptsize\textsf{#1}\egroup}

Ovom definicijom se vrsi izbor \textsf fonta velicine \scriptsize za nu-meraciju na osama. U sljedecem primjeru je odabran \textrm font velicine\scriptsize.

Page 21: 3DGrafika

2.1 Crtanje koordinatnog sistema 14

x y

z

1.02.0

3.0

-1.0

-2.0

1.02.0

3.0

-1.0

-2.01.0

2.0

3.0

-1.0

-2.0

\def\psxyzlabel#1{\bgroup

\scriptsize\textrm{#1}\egroup}

\begin{pspicture}(-3.3,-2.3)(2,4.2)

\pstThreeDCoor[

IIIDticks,

linewidth=1pt,

linecolor=DarkViolet!80,

xMin=-2,yMin=-2,zMin=-2]

\end{pspicture}

Podioni razmaci na koordinatnim osama

Izborom odredenih konkretnih vrijednosti (pozitivnih brojeva) za parametreDx, Dy i Dz vrsi se odabir podionih razmaka na koordinatnim osama x, y i zrespektivno, te je na taj nacin moguce postici zeljenu podjelu.

x y

z

2.04.06.0

-2.0

-4.0

0.5 1.0 1.5

-0.5

-1.00.25

0.5

0.75

-0.25

-0.5

\begin{pspicture}(-3.3,-2.3)(2,4.2)

\pstThreeDCoor[

IIIDticks,

linewidth=1pt,

linecolor=RedOrange!80,

xMin=-2,

yMin=-2,

zMin=-2,

Dx=2,Dy=0.5,Dz=0.25]

\end{pspicture}

Pozicija numeracije koordinatnih osa

Postoje dva parametra za pozicioniranje numeracija koordinatnih osa. Para-metri IIIDxTicksPlane, IIIDyTicksPlane i IIIDzTicksPlane postavljajubrojne vrijednosti na odgovarajucim osama x, y i z u ravni xy, yz ili xz,

Page 22: 3DGrafika

2.1 Crtanje koordinatnog sistema 15

sto omogucava optimalan pogled na 3D sistem. Takoder, moguce je pre-cizirati udaljenost numeracije od same koordinatne ose, a parametri koji toomogucavaju su IIIDxticksep, IIIDyticksep i IIIDzticksep, gdje se prviparametar odnosi na x, drugi na y, a treci na z osu, sto je naglaseno i unazivu parametra. Ilustracija funkcije navedenih parametara prikazana je unarednim primjerima.

x y

z

1.02.03.0

-1.0

-2.0

1.0 2.0 3.0

-1.0

-2.01.0

2.0

3.0

-1.0

-2.0

\begin{pspicture}(-3.3,-2.3)(2,4.2)

\pstThreeDCoor[

linecolor=black,

linewidth=0.9pt,

IIIDticks,

IIIDxTicksPlane=yz,

xMin=-2,yMin=-2,zMin=-2]

\end{pspicture}

xy

z

0.5 1.0 1.5

-0.5

1.02.03.0

-1.0

2.0

4.0

6.0

-2.0

\begin{pspicture}(-3.3,-2.3)(2,4.2)

\pstThreeDCoor[

linecolor=MidnightBlue,

linewidth=1pt,IIIDticks,

IIIDxTicksPlane=zx,

IIIDxticksep=-0.2,

IIIDyTicksPlane=yz,

IIIDyticksep=-0.1,

IIIDzTicksPlane=yz,

IIIDzticksep=-0.2,

Dx=0.5,Dy=1,Dz=2,

Alpha=-135,Beta=-30]

\end{pspicture}

Sljedeci primjer prikazuje pogresnu poziciju brojnih vrijednosti kojimase vrsi numeracija koordinatnih osa. Naime, odabirom uglova Alpha i Betakoordinatne ose u prostoru zauzimaju pozicije tako da dolazi do preklapanjabrojnih vrijednosti na osama. Takvo preklapanje se izbjegava upravo upotre-bom opcija koje premjestaju brojne vrijednosti u ravni koje su vise pogodne.

Page 23: 3DGrafika

2.1 Crtanje koordinatnog sistema 16

x

y

z

0.5

1.0

1.5

-0.5

1.02.0

3.0

-1.02.0

4.0

6.0

-2.0

\begin{pspicture}(-3.8,-2.1)(1,3.3)

\pstThreeDCoor[

linecolor=NiceRed,

linewidth=1pt,

IIIDticks,

Dx=0.5,Dy=1,Dz=2,

Alpha=-60,Beta=60]

\end{pspicture}

Moguce rjesenje ovakvog problema je:

x

y

z

0.5

1.0

1.5

-0.5

1.02.0

3.0

-1.02.0

4.0

6.0

-2.0

\begin{pspicture}(-3.8,-2.1)(1,3.3)

\pstThreeDCoor[

linecolor=NiceRed,

linewidth=1pt,

IIIDticks,

IIIDxTicksPlane=zx,

IIIDxticksep=-0.2,

IIIDyTicksPlane=yz,

IIIDyticksep=0.1,

IIIDzTicksPlane=yz,

IIIDzticksep=-0.2,

Dx=0.5,Dy=1,Dz=2,

Alpha=-60,Beta=60]

\end{pspicture}

U narednom primjeru nacrtane su dvije elipse u koordinatnom sistemu sanumerisanim osama. Elipse su nacrtane pomocu naredbi pst-3dplot paketao kojima ce u daljem izlaganju biti vise rijeci.

Ono sto je vazno uociti u ovom primjeru jeste sljedece: Uglovi rotacijeAlpha i Beta postavljeni su sa \psset naredbom i tako ucinjeni globalnim zasve naredbe koje figurisu unutar ovog primjera. Razlog za to je taj sto svakapst-3dplot naredba zahtijeva vrijednosti ovih uglova, te u slucaju nepre-ciziranja istih koristi standardne (default) vrijednosti. Zato, ukoliko bi ugloviAlpha i Beta bili postavljeni kao opcioni parametri unutar \pstThreeDCoornaredbe, elipse ce biti crtane za standardne vrijednosti uglova Alpha i Beta,tj. u standardnom 3D koordinatnom sistemu.

Sa namjerom sto boljeg pojasnjenja navedena su oba slucaja:

Page 24: 3DGrafika

2.1 Crtanje koordinatnog sistema 17

x

y

z

1.02.03.0

-1.0

1.02.0

3.0

-1.0

1.0

2.0

3.0

-1.0

b

b

\begin{pspicture}(-3.85,-2)(2,4)

\pstThreeDCoor[Alpha=30,Beta=30,IIIDticks,

linecolor=black]

\psset{linecolor=mycolor,

linewidth=1.7pt}

\pstThreeDEllipse

(1,0.5,0.5)(-0.5,1,0.5)(1,-0.5,-1)

\pstThreeDDot[drawCoor=true]

(1,0.5,0.5) % centar

\psset{beginAngle=0,endAngle=270,

linecolor=mycolor1}

\pstThreeDEllipse

(2,1,2.5)(-0.5,0.5,0.5)(0.5,0.5,-1)

\pstThreeDDot[drawCoor=true]

(2,1,2.5) % centar

\end{pspicture}

. . . a trebalo bi da izgleda ovako:

x

y

z

1.02.03.0

-1.0

1.02.0

3.0

-1.0

1.0

2.0

3.0

-1.0

b

b

\begin{pspicture}(-3.85,-2)(2,4)

\psset{Alpha=30,Beta=30}

\pstThreeDCoor[linecolor=black,IIIDticks]

\psset{linecolor=mycolor,

linewidth=1.7pt}

\pstThreeDEllipse

(1,0.5,0.5)(-0.5,1,0.5)(1,-0.5,-1)

\pstThreeDDot[drawCoor=true]

(1,0.5,0.5) % centar

\psset{beginAngle=0,endAngle=270,

linecolor=mycolor1}

\pstThreeDEllipse

(2,1,2.5)(-0.5,0.5,0.5)(0.5,0.5,-1)

\pstThreeDDot[drawCoor=true]

(2,1,2.5) % centar

\end{pspicture}

Page 25: 3DGrafika

2.1 Crtanje koordinatnog sistema 18

2.1.3 Parametri za rotaciju

Koordinatni sistem moze biti rotiran neovisno o odabranim vrijednostimauglova Alpha i Beta. Tako je moguce postaviti koordinatne ose u bilo kojempravcu i bilo kojem redoslijedu.

Postoje tri parametra RotX, RotY, RotZ kao i dodatni RotSequence.Mouguce vrijednosti parametra RotSequence su bilo koje kombinacije slovaxyz. Parametrima RotX, RotY i RotZ se vrsi rotacija oko koordinatnih osax, y i z respektivno. Ako se u nekoj makro naredbi upotrebljavaju sva tri,onda je opcijom RotSequence moguce precizirati redoslijed vrsenja rotacija.Tako npr. opcija RotSequence=zxy odreduje redoslijed: RotZ, RotX, RotY.

U sljedecem primjeru pomocu pstricks makro naredbe \multido prikazanje niz od 18 rotacija koordinatnog sistema oko z ose za po 10o.

x y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

x

y

z

\begin{pspicture}(-6,-3)(6,3.5)

\multido{\iA=0+10}{18}{

\pstThreeDCoor[linewidth=1pt,linecolor=NiceRed,

RotZ=\iA,xMin=0,xMax=5,yMin=0,yMax=5,zMin=-1,zMax=3.5]

}

\end{pspicture}

Kroz naredne primjere ilustrovane su funkcije parametara RotX, RotY,RotZ, RotSequence na trodimenzionalnom objektu (kvadar).

Page 26: 3DGrafika

2.1 Crtanje koordinatnog sistema 19

x y

z

\begin{pspicture}(-2,-1.8)(2,2.5)

\pstThreeDCoor[linecolor=black,

xMin=0,yMin=0,zMin=0,xMax=2,yMax=2,zMax=2]

\pstThreeDBox(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotX=90,

linecolor=WildStrawberry]%

(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotX=90,RotY=90,

linecolor=NiceRed!80]%

(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotX=90,RotY=90,RotZ=90,

linecolor=CarnationPink!80]%

(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\end{pspicture}

x y

z

x y

z

\begin{pspicture}(-4.5,-2)(2,2.6)

\pstThreeDCoor[xMin=0,xMax=2.5,yMin=0,yMax=2.5,zMin=0,zMax=2.5]

\pstThreeDBox(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotX=90,RotY=90,RotZ=90,

linecolor=NiceRed](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotSequence=xzy,RotX=90,RotY=90,RotZ=90,

linecolor=viol_red](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotSequence=zyx,RotX=90,RotY=90,RotZ=90,

linecolor=cyan](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotSequence=zxy,RotX=90,RotY=90,RotZ=90,

linecolor=blue](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotSequence=yxz,RotX=90,RotY=90,RotZ=90,

linecolor=magenta](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[RotSequence=yzx,RotX=90,RotY=90,RotZ=90,

linecolor=violet](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDBox[fillstyle=gradient](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)

\pstThreeDCoor[xMin=0,xMax=2.5,yMin=0,yMax=2.5,zMin=0,zMax=2.5]

\end{pspicture}

Page 27: 3DGrafika

2.2 3D koordinatna mreza 20

2.2 3D koordinatna mreza

Opste-poznata je cinjenica da Descartes-ov trodimenzionalni koordinatni si-stem predstavlja ortogonalni presjek tri ravni u prostoru (horizontalna, fro-ntalna i profilna ravan). Zbog toga se koordinatna mreza 3D sistema sastojiiz koordinatnih mreza ravnina koje odreduju taj sistem.

Naredba za crtanje koordinatne mreze u nekoj od ravnina 3D sistema imasintaksu:

⋆ \pstThreeDPlaneGrid[Opcije ](xMin,yMin)(xMax,yMax) ⋆

Parametri navedeni unutar ( ) su obavezni i odreduju okvir koordinatnemreze, te je njihova funkcija ista kao i funkcija odgovarajucih parametarapst-plot paketa za naredbu \psgrid. Naime, na taj nacin se definisu koor-dinate dva suprotna tjemena cetverougla u odredenoj ravni, koji predstavljaokvir za koordinatnu mrezu te ravni. Opcioni argumenti mijenjaju izgled ko-ordinatne mreze, a parametri koji to omogucavaju su planeGrid, subticksi planeGridOffset.

U narednim primjerima su odredene opcije uvodene pomocu \psset nare-dbe da bi ucinjene globalnim za sve naredbe unutar pspicture okruzenja.

planeGrid

Parametrom planeGrid se vrsi izbor ravni u koju se zeli umetnuti koordi-natna mreza. Njegove moguce vrijednosti su: xy, xz i yz, a default vrijednostxy.

U primjeru koji slijedi nacrtana je koordinatna mreza za sve tri ravni3D sistema, te promijenjena standardna debljina i boja linija kojima ce sekoordinatna mreza crtati.

x y

z

\begin{pspicture}(-3.3,-3)(2,4)

\psset{linewidth=0.2pt,

linecolor=lightgray}

\pstThreeDCoor

[xMin=0,yMin=0,zMin=0,

linecolor=violet,

linewidth=2pt]

\pstThreeDPlaneGrid(0,0)(4,4)

\pstThreeDPlaneGrid

[planeGrid=xz](0,0)(4,4)

\pstThreeDPlaneGrid

[planeGrid=yz](0,0)(4,4)

\end{pspicture}

Page 28: 3DGrafika

2.2 3D koordinatna mreza 21

subticks

Iz prethodnog primjera smo vidjeli da ukoliko zelimo da se koordinatna mrezasastoji iz odredenog broja linija, onda se taj broj mora precizirati. Parame-tar subticks ima slicnu funkciju. On je takoder definisan i u pst-plot

paketu, ali ovdje uz komandu \pstThreeDPlaneGrid ima drugaciju funkciju.Naime, njime se odreduju podjele koordinatne mreze koje polaze od objekoordinatne ose ravni u kojoj se koordinatna mreza crta.

U sljedecem primjeru je prikazana podjela koordinatne mreze na 6 dijelovaod obje ose opcijom subticks=6.

x y

z\begin{pspicture}(-3.3,-3)(2,4)

\psset{linewidth=0.2pt,

linecolor=lightgray,

subticks=6}

\pstThreeDCoor

[xMin=0,yMin=0,zMin=0,

linecolor=violet,

linewidth=2pt]

\pstThreeDPlaneGrid(0,0)(4,4)

\pstThreeDPlaneGrid

[planeGrid=xz](0,0)(4,4)

\pstThreeDPlaneGrid

[planeGrid=yz](0,0)(4,4)

\end{pspicture}

Moguce je i determinisati podjelu koordinatne mreze razlicitim podje-lama koje polaze od koordinatnih osa. Parametri koji to omogucavaju suxsubticks i ysubticks.

x y

z\begin{pspicture}(-3.3,-3)(2,4)

\psset{linewidth=0.2pt,

linecolor=lightgray,

xsubticks=6,

ysubticks=2}

\pstThreeDCoor

[xMin=0,yMin=0,zMin=0,

linecolor=violet,

linewidth=2pt]

\pstThreeDPlaneGrid(0,0)(4,4)

\pstThreeDPlaneGrid

[planeGrid=xz](0,0)(4,4)

\pstThreeDPlaneGrid

[planeGrid=yz](0,0)(4,4)

\end{pspicture}

Page 29: 3DGrafika

2.2 3D koordinatna mreza 22

planeGridOffset

Koordinatna mreza moze biti udaljena od koorinatnih osa za proizvoljnuduzinu. Parametar kojim se ta duzina precizira je planeGridOffset. Defaultvrijednost ovog parametra je 0.

x y

z\begin{pspicture}(-3.3,-3)(2,4)

\psset{linewidth=0.2pt,

linecolor=lightgray,

subticks=6}

\pstThreeDCoor

[xMin=0,yMin=0,zMin=0,

linecolor=violet,

linewidth=2pt]

\pstThreeDPlaneGrid(0,0)(4,4)

\pstThreeDPlaneGrid

[planeGrid=xz,

planeGridOffset=4](0,0)(4,4)

\pstThreeDPlaneGrid

[planeGrid=yz](0,0)(4,4)

\end{pspicture}

x

y

z

\begin{pspicture}(-3.3,-4)(2,4)

\psset{linewidth=0.4pt,

linecolor=thistle!70,

Alpha=-65,Beta=-45,

subticks=5,unit=1.25}

\pstThreeDPlaneGrid

[planeGridOffset=-2,

planeGrid=xy](-2,-2)(2,2)

\pstThreeDPlaneGrid

[planeGrid=xz,

planeGridOffset=2](-2,-2)(2,2)

\pstThreeDPlaneGrid

[planeGridOffset=-2,

planeGrid=yz,](-2,-2)(2,2)

\pstThreeDCoor

[xMin=-2,yMin=-2,zMin=-2,

xMax=2,yMax=2,zMax=2,

linecolor=violet,

linewidth=2pt]

\end{pspicture}

U narednim primjerima nacrtane su funkcije

f(x, y)=sin x·y i f(x, y)=x2 + 2y2 − 6x − 4y + 3

10

Page 30: 3DGrafika

2.2 3D koordinatna mreza 23

pomocu naredbe \psplotThreeD, o kojoj ce vise rijeci biti kasnije, a pomocu3D koordinatne mreze ograniceni dijelovi prostora unutar kojih su funkcijesmjestene.

x

y

z

\scalebox{1.2}[1.6]{

\begin{pspicture}(-5.45,-3)(5.45,3)

\psset{nameX=\scriptsize{$x$},nameY=\scriptsize{$y$},

nameZ=\scriptsize{$z$}}

\psset{Alpha=25,Beta=20,

linecolor=thistle,linewidth=0.5pt,

xsubticks=10,ysubticks=3,unit=0.8}

\pstThreeDCoor[xMin=-5.5,yMin=-5.5,zMin=-1,

xMax=5.5,yMax=5.5,zMax=1,

linecolor=black,linewidth=.7pt]

\pstThreeDPlaneGrid[planeGridOffset=-1,ysubticks=10](-5,-5)(5,5)

\pstThreeDPlaneGrid[planeGrid=xz,planeGridOffset=5](-5,-1)(5,1)

\pstThreeDPlaneGrid[planeGrid=xz,planeGridOffset=-5](-5,-1)(5,1)

\pstThreeDPlaneGrid[planeGrid=yz,planeGridOffset=-5](-5,-1)(5,1)

\pstThreeDPlaneGrid[planeGrid=yz,planeGridOffset=5](-5,-1)(5,1)

\psplotThreeD[plotstyle=curve,drawStyle=xyLines,

yPlotpoints=70,xPlotpoints=70,

linewidth=0.2pt,linecolor=black](-3.5,3.5)(-3.5,3.5)

{x y mul 57 mul sin}

\psset{subticks=10}

\pstThreeDPlaneGrid[planeGridOffset=1](-5,-5)(5,5)

\end{pspicture}}

Page 31: 3DGrafika

2.2 3D koordinatna mreza 24

xy

z

\begin{pspicture}(-9,-2)(4,7.5)

\psset{Beta=10,Alpha=30,subticks=7}

\pstThreeDCoor[xMin=0,yMin=0,zMin=0,xMax=7,yMax=7,zMax=7,

linewidth=1.5pt,linecolor=black]

\psset{linewidth=0.1pt,linecolor=gray}

\pstThreeDPlaneGrid(0,0)(7,7)

\pstThreeDPlaneGrid[planeGrid=xz](0,0)(7,7)

\pstThreeDPlaneGrid[planeGrid=yz](0,0)(7,7)

\pscustom[linewidth=0.1pt,fillstyle=gradient,gradbegin=MidnightBlue,

gradend=lightgray,gradmidpoint=0.6,plotstyle=curve]{

\psset{xPlotpoints=200,yPlotpoints=1}

\psplotThreeD(0,7)(0,0)

{x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div}

\psset{xPlotpoints=1,yPlotpoints=200,drawStyle=yLines}

\psplotThreeD(7,7)(0,7)

{x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div}

\psset{xPlotpoints=200,yPlotpoints=1,drawStyle=xLines}

\psplotThreeD(7,0)(7,7)

{x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div}

\psset{xPlotpoints=1,yPlotpoints=200,drawStyle=yLines}

\psplotThreeD(0,0)(7,0)

{x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div}}

\pstThreeDPlaneGrid[planeGrid=xz,planeGridOffset=7](0,0)(7,7)

\pstThreeDPlaneGrid[planeGrid=yz,planeGridOffset=7](0,0)(7,7)

\end{pspicture}

Page 32: 3DGrafika

2.3 Put naredbe 25

2.3 Put naredbe

U LATEX-u, opcenito, put naredbe sluze za pozicioniranje teksta ili bilo kakvihobjekata na crtezu, kao i za oznacavanje objekata. Kod pst-plot paketa tufunkciju ima \rput naredba. Ona omogucava i pozicioniranje objekta saraznih strana referentne tacke (parametri: lt|lB|lb|t|c|B|b|rt|rB|rb).

Kod pst-3dplot paketa postoje dvije put naredbe, \pstThreeDPut i\pstPlanePut. Default parametar pozicioniranja prve je c (referentna tackaje centrirana u odnosu na objekat), a druge naredbe lB (referentna tacka jelijevo po osnovnoj liniji od objekta).

2.3.1 \pstThreeDPut

Sintaksa ove naredbe slicna je \rput naredbi i glasi:

⋆ \pstThreeDPut[opcije ](x,y,z) {objekat} ⋆

Unutar [ ] zagrada moguce je specificirati odredene opcije za objekat, a(x,y,z) su koordinate referentne tacke objekta.

x

y

z

3D tackab

\begin{pspicture}(-2,-1.3)(1,2.4)

\psset{Alpha=-60,Beta=30}

\pstThreeDCoor[

linecolor=MidnightBlue,linewidth=.8pt,

xMin=-1,yMin=-1,zMin=-1,

xMax=2,yMax=2,zMax=2]

\pstThreeDPut(1,0.5,1.25){\emph{3D ta\v cka}}

\pstThreeDDot[drawCoor=true](1,0.5,1.25)

\end{pspicture}

Ako se naredbom \pstThreeDPut zeli postaviti neki 3D objekat, onda sereferentna tacka ne mora vidjeti kao centar tog odjekta, zbog perspektive izkoje se koordinatni sistem posmatra. Medutim, to nije slucaj sa prethodnimprimjerom jer je tekst dvodimenzionalan objekat.

x y

z

b

\begin{pspicture}(-2.6,-1.6)(2,2.8)

\pstThreeDCoor[

linecolor=black,linewidth=.7pt,

xMin=-1,yMin=-1,zMin=-1,

xMax=2.5,yMax=2.5,zMax=2.5]

\pstThreeDBox[linecolor=thistle]%

(-1,-1,-1)(0,1,0)(0,0,.5)(1.5,0,0)

\pstThreeDPut[linecolor=MidnightBlue](1,-1,1.25)

{\pstThreeDBox(-1,-1,-1)(0,1,0)(0,0,.5)(1.5,0,0)}

\pstThreeDDot[drawCoor=true](1,-1,1.25)

\end{pspicture}

Page 33: 3DGrafika

2.3 Put naredbe 26

2.3.2 \pstPlanePutOva naredba omogucava postavljanje zeljenog objekta u jednu od tri koordi-natne ravni 3D sistema. Sama definicija ove naredbe identicna je prethodnoj:

⋆ \pstPlanePut[opcije ](x,y,z) {objekat} ⋆

Medutim, opcioni argumenti ove naredbe se ureduju pomocu dva parame-tra: plane i planecorr.

plane

Parametrom plane se vrsi izbor ravni u koju se objekat zeli postaviti. Obje-kat moze biti bilo kojeg tipa, ali u vecini slucajeva on je neka vrsta teksta.Referentna tacka objekta je sa lijeve strane vertikalno centrirana, obicnovidena kao u poziciji lB.

Moguce vrijednosti za ovaj parametar su: xy, xz, yz; a default vrijednostxy. Prvi parametar odreduje pozitivan smjer za sirinu, a drugi za visinu.Kroz naredne primjere su ilustrovane sve tri vrijednosti za ovaj parametar.

x

y

z

xyplane

xyplane

xyplane

\begin{pspicture}(-4,-3.5)(3,3.5)

\psset{Alpha=30}

\pstThreeDCoor[

linecolor=MidnightBlue,

linewidth=.9pt,

xMin=-3,yMin=-3,

zMin=-3,zMax=3.3]

\pstPlanePut[plane=xy](0,0,-2)

{\fbox{\LARGE\emph{xy plane}}}

\pstPlanePut[plane=xy](0,0,0)

{\fbox{\LARGE\emph{xy plane}}}

\pstPlanePut[plane=xy](0,0,2)

{\fbox{\LARGE\emph{xy plane}}}

\end{pspicture}

Page 34: 3DGrafika

2.3 Put naredbe 27

xy

z

xzplane xzplane xzplane

\begin{pspicture}(-4.5,-3)(3,3.5)

\pstThreeDCoor[

linecolor=MidnightBlue,

linewidth=.9pt,xMin=-3,

yMin=-3,yMax=3,

zMin=-3,zMax=3.3]

\pstPlanePut[plane=xz](0,-2,0)

{\fbox{\LARGE\emph{xz plane}}}

\pstPlanePut[plane=xz](0,0,0)

{\fbox{\LARGE\emph{xz plane}}}

\pstPlanePut[plane=xz](0,2,0)

{\fbox{\LARGE\emph{xz plane}}}

\end{pspicture}

xy

z

yz planeyz planeyz plane

\begin{pspicture}(-2.5,-3)(3,3.5)

\pstThreeDCoor[

linecolor=MidnightBlue,

linewidth=.9pt,yMin=-3,

xMin=-3,xMax=3,

zMin=-3,zMax=3.3]

\pstPlanePut[plane=yz](-2,0,0)

{\fbox{\LARGE\emph{yz plane}}}

\pstPlanePut[plane=yz](0,0,0)

{\fbox{\LARGE\emph{yz plane}}}

\pstPlanePut[plane=yz](2,0,0)

{\fbox{\LARGE\emph{yz plane}}}

\end{pspicture}

planecorr

U prethodnim primjerima je moguce uociti i neke nepravilnosti. Naime, uprva dva primjera tekst je postavljen u odredene ravni, ali je njegov odraz napapiru na neki nacin izokrenut. Kod treceg primjera to nije slucaj i tekst jeu potpunosti citljiv. Za korekciju ovakvih nepravilnosti koristi se parametarplanecorr.

O cemu se zapravo radi? Naredba \pstPlanePut sa parametrom plane=xy

postavlja tekst u xy ravan sa gornje strane, tako da parametar x odredujepozitivan smjer za sirinu, a parametar y pozitivan smjer za visinu. Prematome, ako je odraz teksta izokrenut, onda je ravan u prostoru postavljenatako da je vidimo sa donje strane.

Sljedece tri opcije mogu biti vrijednosti parametra planecorr:

Page 35: 3DGrafika

2.3 Put naredbe 28

⋆ off

Izbor ove opcije ne uzrokuje nikakve promjene u prikazu i ona je, takoder, de-fault vrijednost ovog parametra. Stoga je opcija planecorr=off postavljenau slucaju kada nedostaje parametar planecorr.

x y

z

bXY

bXZ

b YZ

\begin{pspicture}(-2.7,-2.2)(2.5,4.5)

\pstThreeDCoor[linecolor=black,

xMax=3.2,yMax=3.2,zMax=4]

\pstThreeDDot

[drawCoor=true,linecolor=Violet](1,-1,2)

\pstPlanePut[plane=xy](1,-1,2)

{\fbox{\LARGE\Violet\textbf{XY}}}

\pstThreeDDot

[drawCoor=true,linecolor=magenta](1,3,1)

\pstPlanePut[plane=xz](1,3,1)

{\fbox{\LARGE\magenta\textbf{XZ}}}

\pstThreeDDot

[drawCoor=true,linecolor=cyan](-1.5,0.5,3)

\pstPlanePut[plane=yz](-1.5,0.5,3)

{\fbox{\LARGE\cyan\textbf{YZ}}}

\end{pspicture}

⋆ normal

Opcijom planecorr=normal se za svaki polozaj koordinatnog sistema obe-zbjeduju ravni u kojima je postavljeni tekst citljiv iz perspektive posmatranja3D sistema.

x y

z

b XY

b XZ

b YZ

\begin{pspicture}(-2.7,-2.2)(2.5,4.5)

\pstThreeDCoor[linecolor=black,

xMax=3.2,yMax=3.2,zMax=4]

\pstThreeDDot

[drawCoor=true,linecolor=Violet](1,-1,2)

\pstPlanePut[plane=xy,planecorr=normal]%

(1,-1,2){\fbox{\LARGE\Violet\textbf{XY}}}

\pstThreeDDot

[drawCoor=true,linecolor=magenta](1,3,1)

\pstPlanePut[plane=xz,planecorr=normal]%

(1,3,1){\fbox{\LARGE\magenta\textbf{XZ}}}

\pstThreeDDot

[drawCoor=true,linecolor=cyan](-1.5,0.5,3)

\pstPlanePut[plane=yz,planecorr=normal]%

(-1.5,0.5,3){\fbox{\LARGE\cyan\textbf{YZ}}}

\end{pspicture}

Page 36: 3DGrafika

2.4 Povezivanje objekata 29

⋆ xyrot

Ova opcija omogucava dodatnu korekciju za xy ravan. Zbog simetricnostipogleda, nekada je potrebno rotirati tekst u xy ravni tako da je linija tekstaparalelna sa y, a ne x osom. To se postize rotacijom ravni xy, a pomocuopcije planecorr=xyrot.

x

y

z

b XY

bXZ

b YZ

\begin{pspicture}(-1.75,-2.25)(4,5)

\psset{Alpha=69.3,Beta=19.43}

\pstThreeDCoor[linecolor=black,

xMax=4,yMax=4,zMax=4]

\pstThreeDDot

[drawCoor=true,linecolor=Violet](1,-1,2)

\pstPlanePut[plane=xy,planecorr=xyrot]%

(1,-1,2){\fbox{\LARGE\Violet\textbf{XY}}}

\pstThreeDDot

[drawCoor=true,linecolor=magenta](1,3.5,1)

\pstPlanePut[plane=xz,planecorr=normal]%

(1,3.5,1){\fbox{\LARGE\magenta\textbf{XZ}}}

\pstThreeDDot

[drawCoor=true,linecolor=cyan](-2,1,3)

\pstPlanePut[plane=yz]%

(-2,1,3){\fbox{\LARGE\cyan\textbf{YZ}}}

\end{pspicture}

2.4 Povezivanje objekata

Povezivanje objekata u 3D sistemu vrsi se definisanjem node-ova. Definicija3D node-a slicna je definicijama dvodimenzionalnih node-ova i glasi:

⋆ \pstThreeDNode(x,y,z){ime node-a} ⋆

gdje je (x,y,z) referentna tacka, a ime node-a najcesce definisano slovimaA, B, C, . . .

Ovom definicijom se zapravo definise dvodimenzionalan node u 3D tacki(x,y,z), pa se povezivanje dva 3D node-a vrsi sintaksom za povezivanje 2Dnode-ova pst-plot paketa:

⋆ \nc-veza{arrows}{node A}{node B} ⋆

Parametrom veza se specificira nacin povezivanja node-ova, a moguce susljedece opcije1: ncline, ncarc, ncdiag, ncdiagg, nccurve, . . .

Evo nekoliko jednostavnijih primjera . . .

1Sve navedene opcije su definisane za pst-plot paket.

Page 37: 3DGrafika

2.4 Povezivanje objekata 30

x y

z

node A

node B

\begin{pspicture}(-3,-2)(3,4)

\pstThreeDCoor[linewidth=.8pt,

linecolor=MidnightBlue,

xMax=3.5,yMax=3.5]

\pstThreeDPut[linecolor=RedOrange](1.4,1,0)

{\ovalnode{A}{\textsl{node A}}}

\pstThreeDPut[linecolor=RedOrange](0,2,3)

{\ovalnode{B}{\textsl{node B}}}

\nccurve{->}{A}{B}

\end{pspicture}

x y

z

translacija

\begin{pspicture}(-3,-2)(3,4)

\pstThreeDCoor[linewidth=.8pt,

linecolor=MidnightBlue,

xMax=3.5,yMax=3.5]

\pstThreeDBox(1.2,0,0)%

(-.5,0,0)(0,-1,0)(0,0,-1.5)

\pstThreeDNode(1.2,0,0){A}

\pstThreeDPut[linecolor=RedOrange](0,2,3.4)

{\rnode{B}

{\pstThreeDBox(0,0,0)%

(-.5,0,0)(0,-1,0)(0,0,-1.5)}}

\ncline{->}{A}{B}

\tvput{\small\emph{translacija}}

\end{pspicture}

x y

z

b

tacka u xz ravni

\begin{pspicture}(-3,-2.4)(3,4.4)

\pstThreeDCoor[linewidth=.8pt,

linecolor=MidnightBlue,

xMin=0,yMin=0,zMin=0,

xMax=3.5,yMax=3.5]

\pstThreeDPlaneGrid[planeGrid=xz,

linecolor=lightgray,

linewidth=.4pt,

xsubticks=7,

ysubticks=8](0,0)(3.5,4)

\pstThreeDDot[linecolor=RedOrange](2,0,2)

\pstThreeDNode(2,0,2){A}

\pstThreeDPut(2,2,0){\rnode{B}{

\texttt{\emph{ta\v cka u xz ravni}}}}

\ncarc[linewidth=.6pt]{<-}{A}{B}

\end{pspicture}

Page 38: 3DGrafika

Poglavlje 3

Osnovni 3D graficki objekti

U ovom poglavlju ce biti definisano mnostvo naredbi za crtanje osnovnih grafickih

objekata 3D sistema, kao sto su: tacka, prava, mnogougao, kvadar, . . . Neke od

njih su vec koristete u prethodnom izlaganju, ali ce u nastavku biti detaljno

objasnjene i ilustrovane brojnim primjerima.

3.1 Tacka

Naredba za crtanje tacke u 3D sistemu je:

⋆ \pstThreeDDot[Opcije ](x,y,z) ⋆

(x,y,z) su koordinate tacke koja se crta, dok opcioni argumenti odredujunjen izgled.

Parametri kojima se specificira izgled tacke su svi parametri istog tipanaredbi \psdot i \psdots pst-plot paketa, a oni su: dotstyle, dotscale,dotsize, dotangle, fillcolor, . . . Varijacije svih ovih parametar su, takoder,preuzete iz pst-plot paketa. Jedini dodatni i posebni parametar naredbe\pstThreeDDot jeste parametar drawCoor, sa mogucim vrijednostima true

i false, koji omogucava iscrtavanje koordinatnih linija tacke (isprekidanimlinijama). Takoder je moguce i nacrtati ‘nevidljivu’ tacku opcijom dotstyle=

none. U ovom slucaju naredba crta samo koordinatne linije tacke, ako jeukljucena i opcija drawCoor=true.

U narednim primjerima ilustrovane su neke opcije za pomenute parame-tre. Koristena je i naredba \multido radi sto bolje demonstracije crtanjatacaka u 3D sistemima. (Nacrtane su tacke oblika (a, a, a), gdje a ∈ {−3,−2,− 1, 0, 1, 2, 3}.)

Page 39: 3DGrafika

3.1 Tacka 32

x

y

z

qq

\begin{pspicture}(-2.25,-2.2)(2,2.2)

\psset{Alpha=30,Beta=60,arrowsize=0.15,

drawCoor=true,dotstyle=pentagon*,

dotscale=1.6,linecolor=MidnightBlue}

\pstThreeDCoor[linewidth=.9pt,linecolor=black,

xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]

\pstThreeDDot(-1,1,1)

\pstThreeDDot(1,-1,-1)

\end{pspicture}

xy

z

qu

u

u u

u

\begin{pspicture}(-2,-2.5)(2,2.8)

\psset{Alpha=65,Beta=30,linecolor=MidnightBlue}

\pstThreeDCoor[linewidth=.9pt,linecolor=black,

xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]

\pstThreeDDot[dotstyle=pentagon*,

dotscale=2.6,drawCoor=true](-1,1,1)

\psset{dotstyle=triangle*,dotscale=1.8}

\pstThreeDDot[dotangle=0](-1.22,.9,1.28)

\pstThreeDDot[dotangle=68](-1,.6,1.05)

\pstThreeDDot[dotangle=140](-.8,.82,.7)

\pstThreeDDot[dotangle=212](-1.05,1.25,.67)

\pstThreeDDot[dotangle=-60](-1.3,1.25,1.08)

\end{pspicture}

x

y

z

+++++++

\begin{pspicture}(-3.25,-3.2)(3,3.5)

\psset{Alpha=30,Beta=30,

dotstyle=+,dotsize=6pt,

dotangle=45,drawCoor=true,

arrowsize=0.15}

\pstThreeDCoor[linewidth=1pt,

linecolor=MidnightBlue,

xMin=-3.2,yMin=-3.2,zMin=-3.2,

xMax=3.2,yMax=3.2,zMax=3.2]

\multido{\n=-3+1}{7}{

\pstThreeDDot(\n,\n,\n)}

\end{pspicture}

Page 40: 3DGrafika

3.2 Linija 33

3.2 Linija

Definicija naredbe za crtanje trodimenzionalne linije (prave) ista je kao defini-cija odgovarajuce naredbe pst-plot paketa (\psline):

⋆ \pstThreeDLine[Opcije ]{arrow}(x1,y1,z1)· · · (xn,yn,zn) ⋆

Ona omogucava crtanje prave ili izlomljene linije.

Dijelovi za opcije i arrow su opcioni, a broj tacaka je jedino ogranicenmemorijom. Sve opcije za pstricks linije su moguce, pa ne postoje dodatneopcije za 3D linije. Naredba za crtanje linija se koristi i za crtanje vektora,a jedina razlika je u izboru opcije za arrow, u slucaju linije je to ‘-’, a zavektor ‘->’.

Za pst-3dplot paket ne postoji specijalna naredba za crtanje poligona,jer se gotovo isto moze postici naredbom \pstThreeDLine. Ipak, za crtanjetrouglova i paralelograma postoje posebne i pogodnije naredbe, o kojima unastavku vise.

Primjeri

x

y

z

l

b

\begin{pspicture}(-3,-2.7)(2,2.4)

\psset{Alpha=30,Beta=60,arrowsize=0.15}

\pstThreeDCoor[linewidth=.7pt,

linecolor=black,

xMin=-2,yMin=-2,zMin=-2,

xMax=3,yMax=3,zMax=3]

\pstThreeDDot[dotstyle=diamond*,

drawCoor=true](-1,1,1)

\pstThreeDDot[drawCoor=true](1.5,-1,-1)

\pstThreeDLine[linewidth=2pt,

linecolor=violet](-1,1,1)(1.5,-1,-1)

\end{pspicture}

x

yz

qP

qP

\begin{pspicture}(-2.7,-2.75)(2,3)

\psset{Alpha=30,Beta=-60,drawCoor=true,

dotstyle=Bpentagon,dotscale=1.3,

arrowsize=0.15}

\pstThreeDCoor[linewidth=.8pt,

linecolor=black,

xMin=-2,yMin=-2,zMin=-2,

xMax=2,yMax=2,zMax=2]

\pstThreeDLine[linewidth=3pt,linearc=0.5,

linecolor=violet,arrowscale=1.8]

{<->}(-1,1,1)(1.5,2,-1)(1.5,-1,-1)

\pstThreeDDot(-1,1,1)

\pstThreeDDot(1.5,-1,-1)

\end{pspicture}

Page 41: 3DGrafika

3.2 Linija 34

x

y

z\begin{pspicture}(-2,-2.8)(2,2.8)

\psset{Alpha=60,Beta=50,arrowsize=0.15}

\pstThreeDCoor[linewidth=.7pt,

linecolor=black,

xMax=3,yMax=3,zMax=3]

\pstThreeDLine[linewidth=1.8pt,

linecolor=WildStrawberry,

linearc=0.2]{H-H}%

(3,1,1)(0,2,3)(.5,3,1)(2,0,3)

\end{pspicture}

x y

z

\begin{pspicture}(-6.8,-2)(4,5)

\pstThreeDCoor[linecolor=black,linewidth=.8pt,

xMin=-3,xMax=3.5,yMin=-3,yMax=3.5,zMin=-1.5,zMax=4.8]

\multido{\iA=1+1,\iB=60+-10}{5}{

\ifcase\iA\or\psset{linecolor=black}\or\psset{linecolor=violet}

\or\psset{linecolor=mycolor1}\or\psset{linecolor=WildStrawberry}

\or\psset{linecolor=mycolor}

\fi

\pstThreeDLine[SphericalCoor=true,linewidth=3pt]

(\iA,0,\iB)(\iA,30,\iB)(\iA,60,\iB)(\iA,90,\iB)(\iA,120,\iB)

(\iA,150,\iB)(\iA,180,\iB)(\iA,210,\iB)(\iA,240,\iB)

(\iA,270,\iB)(\iA,300,\iB)(\iA,330,\iB)(\iA,360,\iB)}

\multido{\iA=0+30}{12}{

\pstThreeDLine[SphericalCoor=true,linestyle=dashed]

(0,0,0)(1,\iA,60)(2,\iA,50)(3,\iA,40)(4,\iA,30)(5,\iA,20)}

\end{pspicture}

Page 42: 3DGrafika

3.3 Trougao 35

U prethodnom primjeru su koristene sferne koordinate 3D tacaka, a nji-hovo koristenje omogucava se opcijom SphericalCoor=true. I u ovom slucajumoraju postojati tri parametra (r, φ, θ), gdje je r poluprecnik, a φ i θ sferniuglovi. Sferne koordinate je moguce koristiti kod svih naredbi koje zahtije-vaju trodimenzionalne koordinate, osim kod naredbi za crtanje matematickihfunkcija.

Za crtanje izlomljenih linija znacajan je parametar linejoin, kojim sespecificira nacin na koji se tacke spajaju. Ovaj parametar ima tri opcije0|1|2, koje su ilustrovane na sljedecoj slici, a default vrijednost je 0.

linejoin=0 linejoin=1 linejoin=2

Slika 3.1: Znacenje opcija linejoin=0|1|2 za crtanje linija

3.3 Trougao

Naredba za crtanje trougla je:

⋆ \pstThreeDTriangle[opcije ](P1)(P2)(P3) ⋆

gdje tacke P1, P2 i P3 odreduju vrhove trougla.

Ponovo su sve pstricks opcije moguce. Za trouglove je posebno vazanparametar linejoin (slika 3.1).

x y

z

b

b

b

\begin{pspicture}(-3.2,-4)(3,3.1)

\psset{linejoin=1,arrowsize=0.15}

\pstThreeDCoor[

linecolor=black,

linewidth=.8pt,xMin=-4,

yMin=-4,zMin=-4,zMax=3]

\pstThreeDTriangle[

fillcolor=JungleGreen!40,

fillstyle=solid,linewidth=1.5pt]

(3,1,-2)(1,4,-1)(-2,2,0)

\pstThreeDTriangle[drawCoor=true,

linecolor=MidnightBlue,

linewidth=2pt]

(3.8,1,2)(3,4,-1)(-1,-.7,1)

\end{pspicture}

Page 43: 3DGrafika

3.4 Paralelogram 36

3.4 Paralelogram

Paralelogram je cetverougao koji ima dva para paralelnih stranica, pa je zacrtanje u potpunosti odreden sa pocetnom tackom (koja predstavlja jedan vrhparalelograma) i dva vektora smjera koji odreduju stranice paralelograma.Na sljedecoj slici su prikazani ti vektori.

x y

z

P

~o

~u~vq

Slika 3.2: Vektori polozaja paralelograma

Za pst-3dplot paket vektori ~o, ~u i ~v jednoznacno odreduju paralelogramsa jednim vrhom u tacki P ciji je vektor polozaja ~o, a vektori ~u i ~v su vektoripravca stranica paralelograma, koji se nalazi u ravni odredenoj vektorima ~ui ~v. Za crtanje paralelograma u 3D sistemu neophodno je precizirati upravoove vektore, te naredba za crtanje paralelograma ima oblik:

⋆ \pstThreeDSquare[Opcije ](~o)(~u)(~v) ⋆

Paralelogram odreden istim vektorima ~o, ~u i ~v kao na slici 3.2, nacrtanpomocu naredbe \pstThreeDSquare, prikazan je u sljedecem primjeru:

x y

z

b

b

b

b

\begin{pspicture}(-2.2,-2.2)(2.5,4.1)

\psset{drawCoor=true,arrowsize=0.15}

\pstThreeDCoor[linecolor=black,

linewidth=.8pt,

xMin=-2.5,xMax=2.5,

yMin=-2.5,yMax=2.5,

zMin=-1,zMax=4]

\pstThreeDSquare[linewidth=1.5pt,

linecolor=MidnightBlue]

(-2,2,3)(3.7,0,0)(0,1,0)

\end{pspicture}

Page 44: 3DGrafika

3.5 Paralelopiped 37

x

y

z

\begin{pspicture}(-2.6,-2.3)(2.5,4.8)

\psset{Alpha=-20,Beta=48,

linecolor=MidnightBlue,

linewidth=1.5pt,arrowsize=0.15}

\pstThreeDCoor[linecolor=black,

linewidth=.8pt,

xMin=-3,yMin=-3,zMin=-1,

xMax=2,yMax=2,zMax=4]

\pstThreeDSquare

(-2,2,3)(3.7,0,0)(0,1,0)

\pstThreeDSquare[RotZ=40]

(-2,2,3)(3.7,0,0)(0,1,0)

\pstThreeDSquare[RotZ=80]

(-2,2,3)(3.7,0,0)(0,1,0)

\pstThreeDSquare[RotZ=120]

(-2,2,3)(3.7,0,0)(0,1,0)

\end{pspicture}

3.5 Paralelopiped

Za pst-3dplot paket, paralelopiped je samo specijalan slucaj paralelograma.Naime, kada vektorima ~u i ~v pridruzimo treci vektor ~w u istoj pocetnoj tacki,dobijamo tri povezana vektora koji sada odreduju trodimenzionalan objekat–paralelopiped (slika 3.3).

xy

z

b

~o

~u

~v ~w

Slika 3.3: Vektori polozaja paralelopipeda

Prema tome, sintaksa naredbe za crtanje 3D ‘kutije’ je:

⋆ \pstThreeDBox[Opcije ](~o)(~u)(~v)(~w) ⋆

gdje je ~o vektor polozaja proizvoljne pocetne tacke (jednog vrha paralelo-pipeda), a ~u, ~v i ~w vektori pravca koji odreduju stranice paralelopipeda–vektori polozaja paralelopipeda.

Page 45: 3DGrafika

3.5 Paralelopiped 38

Paralelopiped, ciji su vektori polozaja predstavljeni na prethodnoj slici,nacrtan je pomocu naredbe \pstThreeDBox u narednim primjerima. (To je,zapravo, kvadar je su mu vektori polozaja medusobno ortogonalni.)

xy

z

~o

~u

~v ~wb

\begin{pspicture}(-2.2,-1.6)(2,4.6)

\psset{Alpha=30,Beta=30}

\pstThreeDCoor[linecolor=black,

linewidth=.8pt,arrowsize=0.15,

xMin=-2,yMin=-2,xMax=2,yMax=2]

\pstThreeDLine[linecolor=WildStrawberry,

linewidth=1.4pt,arrows=->](0,0,0)(-1,1,2)

\pstThreeDPut(-.75,.35,.7){$\vec{o}$}

\pstThreeDPut(-.6,1.2,3){$\vec{u}$}

\pstThreeDPut(0,1,2.3){$\vec{v}$}

\pstThreeDPut(-1.2,1.5,2.3){$\vec{w}$}

\psset{linecolor=violet,linewidth=1.2pt}

\pstThreeDBox(-1,1,2)(0,0,2)(2,0,0)(0,1,0)

\pstThreeDDot[drawCoor=true](-1,1,2)

\end{pspicture}

x

y

z

b

\begin{pspicture}(-2.2,-1)(2,4.6)

\psset{Alpha=120,Beta=30}

\pstThreeDCoor[linecolor=black,

linewidth=.8pt,arrowsize=0.15,

xMin=-2,yMin=-2,zMin=-1,

xMax=2,yMax=2,zMax=4]

\pstThreeDLine[linecolor=WildStrawberry,

linewidth=1.4pt,arrows=->](0,0,0)(-1,1,2)

\psset{linecolor=violet,linewidth=1.2pt}

\pstThreeDBox(-1,1,2)(0,0,2)(2,0,0)(0,1,0)

\pstThreeDDot[drawCoor=true](-1,1,2)

\end{pspicture}

xy

z

b

\begin{pspicture}(-2.2,-1)(2,4.7)

\psset{Alpha=210,Beta=30}

\pstThreeDCoor[linecolor=black,

linewidth=.8pt,arrowsize=0.15,

xMin=-2,yMin=-2,zMin=-1,

xMax=2,yMax=2,zMax=4]

\pstThreeDLine[linecolor=WildStrawberry,

linewidth=1.4pt,arrows=->](0,0,0)(-1,1,2)

\psset{linecolor=violet,linewidth=1.2pt}

\pstThreeDBox(-1,1,2)(0,0,2)(2,0,0)(0,1,0)

\pstThreeDDot[drawCoor=true](-1,1,2)

\end{pspicture}

Page 46: 3DGrafika

3.5 Paralelopiped 39

x

y

z

b

\begin{pspicture}(-2.2,-2.5)(2,2.7)

\psset{Alpha=120,Beta=100}

\pstThreeDCoor[linecolor=black,

linewidth=.8pt,arrowsize=0.15,

xMin=-2,yMin=-2,zMin=-4,

xMax=2,yMax=2,zMax=4]

\pstThreeDLine[linecolor=WildStrawberry,

linewidth=1.4pt,arrows=->](0,0,0)(-1,1,2)

\psset{linecolor=violet,linewidth=1.2pt}

\pstThreeDBox(-1,1,2)(0,0,2)(2,0,0)(0,1,0)

\pstThreeDDot[drawCoor=true](-1,1,2)

\end{pspicture}

Za crtanje kvadra postoji jos jedna specijalna naredba, koja omogucavasjencenje osnova i bocnih strana kvadra. Njena definicija je:

⋆ \psBox[Opcije ](~o){sirina}{dubina}{visina} ⋆

gdje je ~o vektor polozaja donjeg lijevog vrha kvadra. Izgled kvadra determi-nisu obavezni parametri sirina, dubina i visina, koji se odrazavaju usmjeru x, y i z ose, respektivno.

x

y

z\psset{SegmentColor=

{[cmyk]{0.98,0.13,0,0.43}}}

\begin{pspicture}(-3.2,-2.5)(2,3)

\psset{Alpha=30,Beta=45}

\pstThreeDCoor[linecolor=black,

linewidth=1pt,xMin=-2,xMax=3,

yMin=-2,yMax=3,zMin=-2,zMax=3]

\psBox(0,0,0){2}{1.4}{3.4}

\end{pspicture}

Za naredbu \psBox postoje dva parametra. Parametar showInside, samogucim vrijednostima true|false (default: true), omogucava sjencenjeosnova kvadra i na taj nacin skrivanje njegove unutrasnjosti. U sljedecemprimjeru koristena je opcija showInside=false.

Page 47: 3DGrafika

3.5 Paralelopiped 40

x

y

z\begin{pspicture}(-3.2,-2.5)(2,3)

\psset{Alpha=-30,Beta=45,

xyzLight=0.5 2 -2.5}

\pstThreeDCoor[linecolor=black,

linewidth=1pt,xMin=-2,xMax=3,

yMin=-2,yMax=3,zMin=-2,zMax=3]

\psBox[showInside=false,

SegmentColor={[cmyk]{0,0.53,0.38,0}}]

(0,0,0){2}{1.4}{3.4}

\end{pspicture}

Intenzitet sjencenja regulise parametar xyzLight, i u narednim primjeri-ma je ilustrovano njegovo koristenje.

x y

z

\begin{pspicture}(-3,-2.1)(2,3.2)

\psset{Beta=30,xyzLight=-7 1 4}

\pstThreeDCoor[linecolor=black,

linewidth=1pt,xMin=-2,xMax=3,

yMin=-2,yMax=3,zMin=-2,zMax=3]

\psBox[showInside=false,

SegmentColor={[cmyk]{0,0.53,0.38,0}}]

(2,1,1.5){2}{1.4}{4}

\end{pspicture}

x

y

z\begin{pspicture}(-3.25,-2.1)(2,3.2)

\psset{Alpha=-30,Beta=30,

xyzLight=1 1 -4}

\pstThreeDCoor[linecolor=black,

linewidth=1pt,xMin=-2,xMax=3,

yMin=-2,yMax=3,zMin=-2,zMax=3]

\psBox[showInside=false,

SegmentColor={[cmyk]{0,0.53,0.38,0}}]

(0,0,0){2}{1.4}{4}

\end{pspicture}

Boja kojom se vrsi sjencenje moze se proizvoljno odabrati pomocu op-cije SegmentColor={[cmyk]{c,m,y,k}}. U narednim primjerima je za bojusjencenja odabrana MidnightBlue ({c,m,y,k}={0.98,0.13,0,0.43}).

Page 48: 3DGrafika

3.5 Paralelopiped 41

x

yz \begin{pspicture}(-3.25,-2.1)(2,3.2)

\psset{Alpha=-30,Beta=-45,

xyzLight=1 -1 -4}

\pstThreeDCoor[linecolor=DarkBlue,

linewidth=1pt,xMin=-2,xMax=3,

yMin=-2,yMax=3,zMin=-2,zMax=3]

\psBox[SegmentColor={

[cmyk]{0.98,0.13,0,0.43}}]

(0,0,0){2}{1.4}{4}

\end{pspicture}

x

yz \begin{pspicture}(-3.25,-2.1)(2,3.2)

\psset{Alpha=-30,Beta=-45,

xyzLight=1 2 3}

\pstThreeDCoor[linecolor=DarkBlue,

linewidth=1pt,xMin=-2,xMax=3,

yMin=-2,yMax=3,zMin=-2,zMax=3]

\psBox[SegmentColor={

[cmyk]{0.98,0.13,0,0.43}}]

(0,0,0){2}{1.4}{4}

\end{pspicture}

x

y

z\begin{pspicture}(-2.25,-2.1)(2,3.2)

\psset{Alpha=150,Beta=30,

xyzLight=-4 2 7}

\pstThreeDCoor[linecolor=DarkBlue,

linewidth=1pt,xMin=-2,xMax=3,

yMin=-2,yMax=3,zMin=-2,zMax=3]

\psBox[SegmentColor={

[cmyk]{0.98,0.13,0,0.43}}]

(0,0,0){2}{1.4}{4}

\end{pspicture}

Page 49: 3DGrafika

Poglavlje 4

Slozeni 3D graficki objekti

4.1 Elipse i kruznice

Elipsa , kao kriva drugog reda u ravni, ima jednacinu:

e :(x − xM)2

a2+

(y − yM)2

b2= 1,

gdje je tacka (xM , yM) centar elipse, a parametri a i b predstavljaju malu,odnosno veliku poluosu elipse.

x

y

qPqP

Mee

a

bF1F2

a

Slika 4.1: Elipsa u 2D sistemu

Ako je u prethodnoj jednacini a = b, onda dobijamo jednacinu kruznice

poluprecnika a, koja je, prema tome, samo specijalan slucaj elipse.

Parametarski oblik jednacine elipse je:

e :

{

x = a · cos αy = b · sin α

,

a vektorski (da bi dobili elipsu u 3D sistemu):

e : ~x = ~m + cos α · ~u + sin α · ~v (0 ≤ α ≤ 360),

Page 50: 3DGrafika

4.1 Elipse i kruznice 43

gdje je ~m vektor polozaja centra elipse, a ~u i ~v vektori smjera , koji suortogonalni medusobno, i ciji su intenziteti jednaki parametrima a i b.

Na sljedecoj slici prikazana je elipsa u 3D sistemu, sa vektorima ~m, ~u i ~v.

x

y

z

~m

~u~v

Slika 4.2: Elipsa u 3D sistemu

4.1.1 Elipsa

Veoma je tesko u 3D koordinatnom sistemu uociti razliku izmedu elipse ikruznice. U zavisnosti od perspektive pogleda na koordinatni sistem, elipsamoze biti videna kao kruznica i obratno.

Naredba za crtanje elipse u 3D sistemu je:

⋆ \pstThreeDEllipse[Opcije ](~m)(~u)(~v) ⋆

Vektori ~m, ~u i ~v prikazani su na slici (4.2): ~m je vektor polozaja tacke koja jecentar elipse, a ~u i ~v su tzv. vektori smjera koji odreduju smjerove i duzinepoluosa elipse i moraju biti ortogonalni medusobno (njihovi inetenziteti sujednaki poluosama a i b – respektivno).

x

y

z \begin{pspicture}(-1.9,-2.2)(2,2.8)

\psset{Alpha=60}

\pstThreeDCoor[linecolor=black!75,

xMax=3,yMax=2.5,zMax=2.5]

\psset{linecolor=DarkOrchid!90,linewidth=1.5pt}

\pstThreeDEllipse

(0,0,0)(-0.25,0.5,-0.5)(1.25,-0.625,-1.25)

\psset{linecolor=thistle,linewidth=1.2pt}

\pstThreeDLine{->}(0,0,0)(-0.25,0.5,-0.5)

\pstThreeDLine{->}(0,0,0)(1.25,-0.625,-1.25)

\end{pspicture}

Page 51: 3DGrafika

4.1 Elipse i kruznice 44

xy

z

b

\begin{pspicture}(-1.8,-1.5)(2,3)

\psset{Alpha=60}

\pstThreeDCoor[linecolor=black!75,

xMax=2.5,yMax=2.5,zMax=2.5]

\pstThreeDDot[drawCoor=true,

linecolor=thistle](-1,0.5,0.5)

\psset{linecolor=DarkOrchid!90,linewidth=1.5pt}

\pstThreeDEllipse

(-1,0.5,0.5)(-0.2,0.4,-0.4)(1,-0.5,-1)

\end{pspicture}

Za izmjenu karaktristika elipse (debljina linije, boja . . . ) koriste se svi vecpostojeci parametri pst-plot paketa, kao i dva dodatna koji omogucavajucrtanje odredenih segmenata elipse definisanjem pocetnog i krajnjeg uglacrtanja, a oni su:

⋆ beginAngle (default: 0),

⋆ endAngle (default: 360).

x

y

z \begin{pspicture}(-2.5,-2.3)(2,3.7)

\psset{Alpha=60,linewidth=1.5pt}

\pstThreeDCoor[linecolor=black!75,

xMax=4,yMax=2.5,zMax=3.5]

\pstThreeDEllipse[linecolor=violet,

beginAngle=0,endAngle=290]

(0,-1,0)(-.25,.5,-.5)(1.25,-.625,-1.25)

\pstThreeDEllipse[linecolor=NavyBlue,

beginAngle=-280,endAngle=0]

(.7,.6,0.4)(-.2,.4,-.4)(1,-.5,-1)

\pstThreeDEllipse[linecolor=DarkOrchid!90,

beginAngle=-90,endAngle=125]

(-.8,.5,-.8)(-.16,.32,-.32)(.8,-.4,-.8)

\end{pspicture}

Redoslijed navodenja vektora ~u i ~v u prethodnoj definiciji je vazan, jerodreduje smjer crtanja elipse, koji je u skladu sa pravilom desne ruke :ako se prvi vektor (~u) najkracim putem dovede do poklapanja sa drugim vek-torom (~v), onda dobijamo smjer pozitivnog kretanja. Ova cinjenica je posebnoznacajna prilikom koristenja parametara beginAngle i endAngle.

Na sljedecoj slici prikazana je ilustracija uticaja redoslijeda navodenjavektora ~u i ~v na smjer crtanja elipse, tako sto su sve linije crtane sa opcijomarrows=->.

Page 52: 3DGrafika

4.1 Elipse i kruznice 45

x y

z

1.02.0

-1.0

1.02.0

-1.0

1.0

2.0

-1.0

x y

z

1.02.0

-1.0

1.02.0

-1.0

1.0

2.0

-1.0

\psset{arrows=->,linewidth=1.5pt,

linecolor=violet}

\begin{pspicture}(-2.8,-1.6)(3,3.2)

\pstThreeDCoor[linecolor=black,

IIIDticks,xMax=3,yMax=3,zMax=3]

\psset{beginAngle=0,endAngle=90,

arrowscale=1.5}

\pstThreeDEllipse(0,0,0)(2,0,0)(0,2,0)

\pstThreeDEllipse(0,0,0)(0,0,2)(2,0,0)

\pstThreeDEllipse(0,0,0)(0,2,0)(0,0,2)

\end{pspicture}

\vspace{2mm}

\begin{pspicture}(-2.8,-1.5)(3,3)

\pstThreeDCoor[linecolor=black,

IIIDticks,xMax=3,yMax=3,zMax=3]

\psset{beginAngle=0,endAngle=90,

arrowscale=1.5}

\pstThreeDEllipse(0,0,0)(0,2,0)(2,0,0)

\pstThreeDEllipse(0,0,0)(2,0,0)(0,0,2)

\pstThreeDEllipse(0,0,0)(0,0,2)(0,2,0)

\end{pspicture}

Ukoliko vektori ~u i ~v u definiciji naredbe \pstThreeDEllipse nisu orto-gonalni, LATEX ce i dalje crtati elipsu sa ‘poluosama’ jednakim intenzitetimavektora ~u i ~v i koje nece biti ortogonalne.

Na narednoj slici nacrtana je elipsa u xy ravni sa vektorima smjera kojinisu ortogonalni, te radi sto bolje ilustracije ravan xy rotacijom 3D sistemasmjestena u ravan papira. Takoder je prikazana ista elipsa sa opcijamabeginAngle=0 i endAngle=90.

x

y

z

x

y

z

\psset{Alpha=0,Beta=90,linewidth=1.5pt,

linecolor=DarkOrchid!90}

\begin{pspicture}(-3.2,-1.9)(1,1.7)

\pstThreeDCoor[linecolor=black!75,

xMax=2,yMax=1.5,zMax=2]

\pstThreeDEllipse(0,0,0)(-0.5,1,0)(2,-0.5,0)

\pstThreeDLine{->}(0,0,0)(-0.5,1,0)

\pstThreeDLine{->}(0,0,0)(2,-0.5,0)

\end{pspicture} \vspace{1mm}

\begin{pspicture}(-3.2,-1.8)(1,1.6)

\pstThreeDCoor[linecolor=black!75,

xMax=2,yMax=1.5,zMax=2]

\pstThreeDEllipse[beginAngle=0,endAngle=90]

(0,0,0)(-0.5,1,0)(2,-0.5,0)

\pstThreeDLine{->}(0,0,0)(-0.5,1,0)

\pstThreeDLine{->}(0,0,0)(2,-0.5,0)

\end{pspicture}

Page 53: 3DGrafika

4.1 Elipse i kruznice 46

Zapravo se radi o tome da zadavanjem proizvoljnih vektora za crtanjeelipse LATEX racuna njihove ‘ortogonalne komponente’, ciji intenziteti odgo-varaju stvarnim poluosama prikazane elipse.

x

y

z

b

\begin{pspicture}(-1.9,-2)(2,3.2)

\psset{Alpha=60}

\pstThreeDCoor[linecolor=black!75,

xMax=3,yMax=3,zMax=3]

\psset{linecolor=DarkOrchid!90,

linewidth=1.5pt}

\pstThreeDEllipse

(1,1,0.5)(-0.5,0.5,1)(2,-0.5,0.4)

\pstThreeDDot[drawCoor=true](1,1,0.5)

\pstThreeDLine{->}(1,1,0.5)(0.5,1.5,1.5)

\pstThreeDLine{->}(1,1,0.5)(3,0.5,0.9)

\end{pspicture}

4.1.2 Kruznica

Kruznica je specijalan slucaj elipse, te ju je moguce nacrtati pomocu naredbe\pstThreeDEllipse, gdje vektori smjera ~u i ~v moraju biti istih intenzitetai ortogonalni medusobno (~u · ~v = ~0). Ipak, postoji i posebna naredba zacrtanje kruznice:

⋆ \pstThreeDCircle[Opcije ](~m)(~u)(~v) ⋆

gdje vektori ~u i ~v moraju zadovoljavati vec pomenute uvjete, a ~m je vektorpolozaja centra kruznice.

x y

z

b

bbbbb b b b b b b b bb bbbbbb

b

\begin{pspicture}(-2.55,-2.7)(2,3.7)

\psset{linewidth=1.5pt,linecolor=NavyBlue}

\pstThreeDCoor[linecolor=black!75,

xMax=2.8,yMax=2.8,zMax=2.8]

\pstThreeDCircle[linestyle=dashed,linecolor=violet]

(1,1,0)(1,0,0)(0,-1,0)

\pstThreeDCircle(1,1.6,1.5)(.8,.4,.8)(.8,-.8,-.4)

\pstThreeDDot[drawCoor=true,linecolor=NavyBlue]

(1,1.6,1.5)

\psset{linecolor=DarkOrchid!90,linewidth=2pt,

plotpoints=20,showpoints=true}

\pstThreeDCircle(1.6,.6,2)(.8,.4,.8)(.8,-.8,-.4)

\pstThreeDDot[drawCoor=true,linecolor=DarkOrchid!90]

(1.6,.6,2)

\end{pspicture}

Page 54: 3DGrafika

4.2 Povrsi drugog reda 47

4.2 Povrsi drugog reda

4.2.1 Cilindar

Naredba za crtanje uspravnog valjka–cilindra je

⋆ \pstIIIDCylinder[Opcije ](x,y,z){radijus}{visina} ⋆

gdje je (x,y,z) centar donje osnove cilindra, a radijus poluprecnik osnova.Ako nedostaju koordinate tacke (x,y,z), onda se za centar uzima (0,0,0).

Primjeri

x

y

z

\begin{pspicture}(-2.5,-1.6)(3,4.7)

\psset{Alpha=60}

\pstThreeDCoor[

xMax=3,yMax=2.5,zMax=4.8,

linecolor=MidnightBlue,

linewidth=1pt]

\pstIIIDCylinder{1.5}{3.5}

\end{pspicture}

x

y

z

\begin{pspicture}(-2.5,-1.6)(3,4.7)

\psset{Alpha=60}

\pstThreeDCoor[

xMax=3,yMax=2.5,zMax=4.8,

linecolor=black,

linewidth=.8pt]

\pstIIIDCylinder[RotY=15,

fillcolor=MidnightBlue!10,

linecolor=black!80,

fillstyle=solid]{1.5}{3.5}

\end{pspicture}

Broj izvodnica cilindra moguce je izmjeniti parametrom increment (engl.korak povecanja, prirast), koji precizira rastojanje izmedu njih. U narednomprimjeru je pomocu opcije increment=0.4 nacrtan cilindar cije su izvodnicejako blizu, tako da ostavljaju dojam ‘neprekidnosti’ omotaca.

Page 55: 3DGrafika

4.2 Povrsi drugog reda 48

x

y

z \begin{pspicture}(-2.5,-1.6)(3,4.5)

\psset{Alpha=60}

\pstThreeDCoor[

xMax=3,yMax=2.5,zMax=4.4,

linecolor=black,

linewidth=.8pt]

\pstIIIDCylinder[

linecolor=DarkOrchid!60,

fillstyle=solid,

increment=0.4]{1.5}{3}

\psset{linecolor=black,

linewidth=.8pt}

\pstThreeDLine{->}(0,0,3)(0,0,4.4)

\end{pspicture}

Postoji jos jedna naredba za crtanje cilindra. Njena sintaksa je slicnaprethodnoj definiciji:

⋆ \psCylinder[Opcije ](x,y,z){radijus}{visina} ⋆

gdje svi parametri imaju isto znacenje. Jedina razlika je u tome da omotaccilindra nacrtanog pomocu ove naredbe biva ispunjen bojom (isjencen), aopcijom showInside=false|true se unutrasnjost cilindra moze sakriti iliprikazati.

x

y

z

x

y

z

\psset{SegmentColor={[cmyk]{0,0.53,0.38,0}}}

\begin{pspicture}(-2.2,-1.8)(3,4)

\psset{Alpha=60}

\pstThreeDCoor[

xMax=3,yMax=2.5,zMax=4,

linecolor=RedOrange,

linewidth=1pt]

\psCylinder[RotY=-45]{1.5}{3.5}

\end{pspicture}

\vspace{2mm}

\begin{pspicture}(-3.1,-1.6)(3,4)

\psset{Alpha=60}

\pstThreeDCoor[

xMax=3,yMax=2.5,zMax=4,

linecolor=RedOrange,

linewidth=1pt]

\psCylinder[RotY=15,RotZ=-25,RotX=45,

showInside=false]{1.5}{3.5}

\end{pspicture}

Page 56: 3DGrafika

4.2 Povrsi drugog reda 49

4.2.2 Paraboloid

Definicija naredbe za crtanje paraboloida je:

⋆ \pstParaboloid[Opcije ]{visina}{radijus} ⋆

gdje parametri visina i radijus zavise jedan od drugog–naime, radijusje poluprecnik kruznice na visini visina paraboloida.

Po default-u je pocetna tacka paraboloida u koordinatnom pocetku, alipomocu naredbe \pstThreeDPut paraboloid moze biti premjesten bilo gdje.U tablici ispod prikazani su parametri naredbe \pstParaboloid, sa mogucimvrijednostima.

Naziv parametra Znacenje Mog.vr.(Default)

SegmentColor cmyk boja za segmente ({0.2,0.6,1,0})showInside prikaz unutrasnjosti false|true(true)1

increment rast. izmedu izvodnica duzina (10)

Tablica 4.1: Parametri naredbe \pstParaboloid

Parametar SegmentColor ima sintaksu SegmentColor={[cmyk]{c,m,y,k}}.Boja za segmente mora biti postavljena kao cmyk boja, i u suprotnom njenevrijednosti ne mogu biti procitane. Bijela boja segmenata data je saSegmentColor={[cmyk]{0,0,0,0}}.

Primjeri

x y

z

\psset{showInside=false,

SegmentColor={[cmyk]{0.34,0.90,0,0.02}}}

\begin{pspicture}(-2,-1)(2,5)

\pstThreeDCoor[linecolor=black,

xMax=2,yMax=2,zMax=5]

\pstParaboloid{3.5}{1}

\end{pspicture}

1Ove vrijednosti za MiKTeX ver.2.7 imaju drugacije znacenje: false–prikazuje unu-trasnjost, true–ne prikazuje unutrasnjost.

Page 57: 3DGrafika

4.2 Povrsi drugog reda 50

x y

z

1.02.0

-1.0

-2.0

1.02.0

-1.0

-2.01.0

2.0

3.0

4.0

-1.0

b

\begin{pspicture}(-2.6,-1.5)(3,5.6)

\pstThreeDCoor[linewidth=1pt,

linecolor=MidnightBlue,

xMax=3,yMax=3,zMax=5.8,

xMin=-2,yMin=-2,

IIIDticks]

\pstThreeDPut(-1,1.5,1){

\pstParaboloid[showInside=false,

SegmentColor={

[cmyk]{0.47,0.91,0,0.08}}]

{4}{2}}

\psset{linecolor=MidnightBlue}

\pstThreeDLine[linewidth=1pt

]{->}(0,0,2.2)(0,0,5.8)

\pstThreeDDot[drawCoor=true]

(-1,1.5,1)

\end{pspicture}

x

y

z

1.0

-1.0

1.02.0

3.04.0

5.06.0

7.08.0

9.010.0

11.012.0

-1.0

1.0

2.0

3.0

4.0

5.0

\begin{pspicture}(-2.5,-4.7)(7,5.6)

\psset{showInside=false}

\pstThreeDCoor[linecolor=black,xMax=2,yMax=13,zMin=0,zMax=6,IIIDticks]

\multido{\rA=2.0+2.5,\rB=0.15+0.20}{5}{

\pstParaboloid[SegmentColor={[cmyk]{0.07,\rB,0,0.34}}](0,\rA,0){5}{1}}

\pstThreeDLine[linestyle=dashed]{->}(0,0,5)(0,13,5)

\end{pspicture}

Page 58: 3DGrafika

4.2 Povrsi drugog reda 51

4.2.3 Sfera

Definicija naredbe za crtanje sfere je:

⋆ \pstThreeDSphere[Opcije ](x,y,z){radijus} ⋆

Tacka (x,y,z) je centar sfere. Moguce su sve opcije navedene u tablici 4.1,osim, naravno, opcija za parametar showInside.

Primjeri

x

y

z

q

\begin{pspicture}(-3.6,-1.8)(2,4.2)

\psset{SegmentColor={[cmyk]

{0.40,0.80,0.20,0}}}

\pstThreeDCoor[xMin=-2,yMax=2,

linecolor=black,

linewidth=.8pt]

\pstThreeDSphere(1,-1,2){1.6}

\pstThreeDDot[dotstyle=pentagon*,

drawCoor=true](1,-1,2)

\end{pspicture}

x

y

z

q

\begin{pspicture}(-3.6,-1.8)(2,4.2)

\psset{SegmentColor={[cmyk]

{0,0,0,0}}}

\pstThreeDCoor[xMin=-2,yMax=2,

linecolor=black,

linewidth=.8pt]

\pstThreeDSphere[

increment=8](1,-1,2){1.6}

\pstThreeDDot[dotstyle=pentagon*,

drawCoor=true](1,-1,2)

\end{pspicture}

Page 59: 3DGrafika

Poglavlje 5

Matematicke funkcije

Ovo poglavlje je posveceno crtanju grafika matematickih funkcija dvije prom-

jenljive. Postoje dvije naredbe, koje rade slicno kao odgovarajuce naredbe paketa

pst-plot. One su:

⋆ \psplotThreeD – koja sluzi za graficko predstavljanje funkcija f(x, y)zadanih u eksplicitnom obliku;

⋆ \parametricplotThreeD – kojom se graficki predstavljaju funkcije date

u parametarskom obliku.

5.1 Funkcije zadane eksplicitno

Naredba \psplotThreeD za crtanje ekslicitno zadanih funkcija nema istusintaksu kao odgovarajuca naredba pst-plot paketa, ali obje rade na istinacin. Naredba je definisana sa:

⋆ \psplotThreeD[Opcije ](xMin,xMax)(yMin,yMax){Funkcija } ⋆

Funkcija mora biti zapisana PostScript kodom, tj. inverznom poljskomnotacijom (IPN). Takoder, jedini validni nazivi promjenljivih su x i y. (Naprimjer: {x dup mul y dup mul add sqrt} je PostScript kod funkcijedate sa f(x, y) =

x2 + y2.)

U tablici 5.1 prikazani su parametri naredbe \psplotThreeD, kao i nji-hove moguce i default vrijednosti. Naredba \psplotThreeD ima iste opcijeza parametar plotstyle kao i naredba \psplot, dok su opcije plotpoints

parametra sada podijeljene na opcije za promjenljivu x i opcije za prom-jenljivu y.

Page 60: 3DGrafika

5.1 Funkcije zadane eksplicitno 53

Naziv parametra Moguce vrijednosti Default

dots

line

polygon

plotstyle curve none

ecurve

ccurve

none

showpoints false|true false

xPlotpoints <broj> 25

yPlotpoints <broj> 25

xLines

drawStyle yLines xLines

xyLines

yxLines

hiddenLine false|true false

Tablica 5.1: Parametri naredbe \psplotThreeD

Na sljedecoj slici prikazan je grafik funkcije f(x, y) = (5x − y)e−(x2+y2).

x

y

z

\begin{pspicture}(-6.5,-2.8)(6,4)

\psset{Alpha=30,Beta=20}

\pstThreeDCoor[xMax=4,yMax=4.5,zMax=3.5,linecolor=black!60,

linewidth=.8pt]

\psplotThreeD[linewidth=.5pt,plotstyle=line,drawStyle=xLines,

xPlotpoints=40,yPlotpoints=40](-3,3)(-3,3)

{1 2.718183 x x mul y y mul add exp div x 5 mul y sub mul}

\end{pspicture}

Page 61: 3DGrafika

5.1 Funkcije zadane eksplicitno 54

U ovom primjeru odabrane su opcije plotstyle=line i drawStyle=xLines.Kroz naredne primjere ce biti ilustovane i druge opcije parametra plotstyle.Opcijom plotstyle=curve postize se glatkoca grafika.

x

y

z

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

bbbbbbbbbbbbbbbbbbbbbbbbbbb

bb

bb

bbbbbbbbbb

bbbbbbbbbbbbbbbbbbbbbbbbb

bb

bb

bb

bb

bbbbbbbb

bbbbbbbbb

bb

bb

bbbbbbbbbbbbb

bb

bb

bb

bb

bbbbbbb

bbbbbbb

bb

bb

bb

bbbbbbbbbbbbb

bb

bb

bb

bb

bbbbbbb

bbbbbb

bb

bb

bb

bb

bbbbbbbbbbbb

bb

bb

bb

bb

bb

bbbbb

bbbbb

bb

bb

bb

bb

bbbbbbbbbbbb

bb

bb

bb

bb

bb

bb

bbbb

bbbb

bb

bb

bb

bb

bb

bbbbbbbbbbbb

bb

bb

bb

bb

bb

bb

bbb

bbbb

bb

bb

bb

bb

bb

bbbbb

bb

bbbb

bb

b

b

bb

bb

bb

bb

bb

bb

bbb

bb

bb

bb

bb

bb

bbbb

bb

b

b

bbbb

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

bb

bb

bb

bb

b

b

b

bbbb

b

b

b

b

b

bbb

b

b

b

b

b

b

b

bb

bb

bb

bb

b

bb

bb

bb

bb

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bbb

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

b

bb

bb

bb

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

b

bb

bb

bb

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

bb

bb

bb

b

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

bb

bb

bb

b

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

b

bb

bb

bb

b

bb

bb

bb

b

b

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

b

b

b

b

b

b

b

bb

bb

bb

bb

bb

bb

bb

bb

b

b

b

b

b

b

b

bbb

b

b

b

b

b

b

bb

b

b

b

b

b

b

bb

bb

bb

bb

b

bb

bb

bb

bb

b

b

b

b

b

b

b

bbb

b

b

b

b

b

bbbb

b

b

b

b

bb

bb

bb

bb

bb

bbb

bb

bb

bb

b

b

b

b

b

b

bbbb

b

b

b

bb

bbbb

bb

bb

bb

bb

bb

bbb

bbb

bb

bb

bb

bb

b

b

b

bb

bbbb

bb

bbbbb

bb

bb

bb

bb

bb

bbbb

bbbb

bb

bb

bb

bb

bb

bb

bbbbbbbbbbbb

bb

bb

bb

bb

bb

bbb

bbbbb

bb

bb

bb

bb

bb

bbbbbbbbbbbb

bb

bb

bb

bb

bb

bbbb

bbbbbb

bb

bb

bb

bb

bb

bbbbbbbbbbbb

bb

bb

bb

bb

bbbbb

bbbbbbb

bb

bb

bb

bb

bbbbbbbbbbbbb

bb

bb

bb

bbbbbbb

bbbbbbbb

bb

bb

bb

bb

bbbbbbbbbbbbb

bb

bb

bbbbbbbb

bbbbbbbbb

bb

bb

bb

bbbbbbbbbbbbbbb

bbbbbbbbbbb

bbbbbbbbbbb

bb

bb

bbbbbbbbbbbbbbbbbbbbbbbbbb

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Slika 5.1: Grafik funkcije f(x, y) sa opcijom plotstyle=dots

x

y

z

Slika 5.2: Grafik funkcije f(x, y) sa opcijom plotstyle=curve

x

y

z

Slika 5.3: Grafik funkcije f(x, y) sa opcijom plotstyle=ccurve

Page 62: 3DGrafika

5.1 Funkcije zadane eksplicitno 55

Parametrima xPlotpoints i yPlotpoints se bira broj tacaka za objepromjenljive, koji odreduje broj linija krive koje ce se crtati. Te linije mogubiti nacrtane na cetiri nacina, koji se precizira parametrom drawStyle. Op-cije parametra drawStyle su:

⋆ xLines – linije se crtaju u smjeru x ose (default),

⋆ yLines – linije se crtaju u smjeru y ose,

⋆ xyLines – linije se prvo crtaju u smjeru x, a zatim u smjeru y ose,

⋆ yxLines – linije se prvo crtaju u smjeru y, a zatim u smjeru x ose.

U narednim primjerima nacrtan je grafik funkcije

f(x, y) = sin x sin y sin(x + y) (⋆)

te ilustrovane razne opcije za parametar drawStyle.

x y

z

\begin{pspicture}(-6.75,-3.75)(6,4)

\pstThreeDCoor[xMax=5,yMax=5,zMax=3.5,linewidth=.8pt,

linecolor=black!60]

\psplotThreeD[linewidth=.8pt,plotstyle=curve,drawStyle=xLines,

yPlotpoints=50,xPlotpoints=50](-4,4)(-4,4)

{x 57 mul sin y 57 mul sin mul x y add 57 mul sin mul}

\end{pspicture}

Page 63: 3DGrafika

5.1 Funkcije zadane eksplicitno 56

x y

z

Slika 5.4: Grafik funkcije (⋆) sa opcijom drawStyle=yLines

x y

z

Slika 5.5: Grafik funkcije (⋆) sa opcijom drawStyle=xyLines

Crtanje trodimenzionalnih funkcija sa krivuljama koje su transparentne(prozirne) cini tesko vidljivim tacke koje se nalaze ispred ili iza drugih. Zbogtoga, \psplotThreeD naredba ima opcioni parametar hiddenLine, koji radina nacin da prostor izmedu svake dvije linije krive ispuni bijelom bojom(default).

U sljedecim primjerima ilustrovana je primjena ovog parametra na prim-jeru funkcije

f(x, y) = 10(

x3 + xy4 − x

5

)

e−(x2+y2) + e−((x−1.225)2+y2) (⋆⋆)

Page 64: 3DGrafika

5.1 Funkcije zadane eksplicitno 57

x y

z

\begin{pspicture}(-6.8,-3.2)(6,4.4)

\psset{Beta=15} \psscalebox{.8}{

\pstThreeDCoor[xMax=5,yMax=5,zMax=4.5,linecolor=black,linewidth=.8pt]

\psplotThreeD[plotstyle=curve,hiddenLine=true,drawStyle=xLines,

yPlotpoints=50,xPlotpoints=50,linewidth=1pt,linecolor=DarkViolet]

(-4,4)(-4,4){x 3 exp x y 4 exp mul add x 5 div sub 10 mul

2.729 x dup mul y dup mul add neg exp mul

2.729 x 1.225 sub dup mul y dup mul add neg exp add}}

\end{pspicture}

x y

z

Slika 5.6: Grafik funkcije (⋆⋆) sa opcijama drawStyle=yLines i hiddenLine=true

Page 65: 3DGrafika

5.1 Funkcije zadane eksplicitno 58

5.1.1 Primjeri

x y

z

f (x , y) = (5x − y)e−(x2+y2 )

\begin{pspicture}(-6.5,-2.6)(6,3.25)

\psset{Beta=25,fillstyle=gradient,gradbegin=DarkBlue,gradend=DarkViolet}

\pstThreeDCoor[xMax=4,yMax=4,zMax=3,linecolor=black!60,linewidth=.9pt]

\psplotThreeD[linewidth=.5pt,plotstyle=curve,drawStyle=xLines,

xPlotpoints=40,yPlotpoints=40](-3,3)(-3,3)

{1 2.718183 x x mul y y mul add exp div x 5 mul y sub mul}

\rput(4.4,-2.25){$\mathit{f(x,y)=(5x-y)e^{-(x^{2}+y^{2})}}$}

\end{pspicture}

x y

z

f (x , y) =4 − x 2 − y2

ex2+y2

\begin{pspicture}(-6.7,-3)(6,3.7)

\pstThreeDCoor[xMax=4,yMax=4,zMax=3.6,linewidth=.8pt,linecolor=black]

\psscalebox{.8}{\psplotThreeD[plotstyle=curve,drawStyle=xyLines,

linecolor=DarkOrchid,yPlotpoints=50,xPlotpoints=50](-4,4)(-4,4)

{4 x x mul sub y y mul sub 1 2.73 x x mul y y mul add exp div mul}}

\rput(4.5,-2.5){$\mathit{f(x,y)=\displaystyle\frac{4-x^{2}-y^{2}}

{e^{x^{2}+y^{2}}}}$}

\end{pspicture}

Page 66: 3DGrafika

5.1 Funkcije zadane eksplicitno 59

x y

z

f (x , y) =12 sin

x 2 + y2

x 2 + y2

\begin{pspicture}(-6.8,-3.1)(6,3.4)

\pstThreeDCoor[xMax=5,yMax=5,zMax=3.5,linecolor=black!70,linewidth=.9pt]

\psscalebox{0.2}{\psplotThreeD[plotstyle=curve,drawStyle=xLines,

xPlotpoints=75,yPlotpoints=75,linewidth=3.5pt,linecolor=DarkBlue]

(-20,20)(-20,20){x x mul y y mul add sqrt 57 mul sin 12 mul x x

mul y y mul add sqrt div}}

\rput(4.25,-2.6){$\mathit{f(x,y)=\displaystyle

\frac{12\sin\sqrt{x^{2}+y^{2}}}{\sqrt{x^{2}+y^{2}}}}$}

\end{pspicture}

x y

z

f (x , y) =5

4sin√

x 2 + y2

\begin{pspicture}(-6.6,-2.9)(6,3.4)

\pstThreeDCoor[xMax=5,yMax=5,zMax=3.5,linewidth=.8pt,linecolor=black!70]

\psscalebox{.2}{\psplotThreeD[plotstyle=curve,drawStyle=yLines,

yPlotpoints=70,xPlotpoints=70,linewidth=3.5pt,linecolor=DarkBlue]

(-18,18)(-18,18){x x mul y y mul add sqrt 57 mul sin 1.25 mul}}

\rput(4.5,-2.5){$\mathit{f(x,y)=\displaystyle\frac{5}{4}

\sin\sqrt{x^{2}+y^{2}}}$}

\end{pspicture}

Page 67: 3DGrafika

5.1 Funkcije zadane eksplicitno 60

xy

z

f (x , y)=x 2−y2

\begin{pspicture}(-7,-2.9)(6,3.4)

\psset{Alpha=25,Beta=15}

\pstThreeDCoor[xMax=4,yMax=4,zMax=3,linewidth=.8pt,linecolor=black]

\psplotThreeD[plotstyle=curve,drawStyle=xyLines,linecolor=DarkOrchid,

yPlotpoints=50,xPlotpoints=50,linewidth=.8pt](-1.5,1.5)(-1.5,1.5)

{x x mul y y mul sub}

\rput(4.9,-2.6){$\mathit{f(x,y)\!=\!x^{2}\!-\!y^{2}}$}

\end{pspicture}

xy

z

qq

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qqqqqqqq

qqqqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

q

q

q

q

q

qq

qq

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

q

q

q

qqqqqqqqqqqqq qq qq q qq q q q q q q q q q q

qqqqqqqqqqqq

q

q

q

q

q

q

qq f (x , y) =5

2− 2x 2 − y2

\begin{pspicture}(-6.7,-2.8)(6,4)

\psset{Alpha=25,Beta=15,dotstyle=pentagon*,dotsize=1.5pt}

\pstThreeDCoor[xMax=4,yMax=4,zMax=3.5,linewidth=.8pt,linecolor=black]

\psplotThreeD[plotstyle=dots,drawStyle=xyLines,linecolor=DarkOrchid,

xPlotpoints=50,yPlotpoints=50,linewidth=.7pt](-1.25,1.25)(-1.25,1.25)

{2.5 x x mul 2 mul sub y y mul sub}

\rput(4.6,-2.4){$\mathit{f(x,y)=\displaystyle\frac{5}{2}-2x^{2}-y^{2}}$}

\end{pspicture}

Page 68: 3DGrafika

5.2 Funkcije zadane parametarski 61

5.2 Funkcije zadane parametarski

Za graficko predstavljanje trodimenzionalnih krivih i povrsi datih u para-metarskom obliku koristi se naredba

⋆ \parametricplotThreeD[Opcije ](t1,t2)(u1,u2){x y z} ⋆

gdje su x, y i z parametarske funkcije, koje zavise od parametara t i u:

x = f(t, u)y = f(t, u)z = f(t, u)

Jedini moguci nazivi za parametre su t i u, sa intervalima definisanosti(t1,t2) i (u1,u2). Funkcije x, y i z se u naredbi navode zapisane PostScript

kodom, odvojene medusobno samo praznim prostorom. Redoslijed navodenjafunkcija nije vazan.

Parametarske funkcije krive u prostoru zavise samo od jednog parametra,pa se za predstavljanje krivih koristi naredba

⋆ \parametricplotThreeD[Opcije ](t1,t2){x y z} ⋆

a naziv za parametar mora biti t (default). Medutim, isto se moze postici iupotrebom prve naredbe uz interval za parametar u (0,0).

Opcije za naredbu \parametricplotThreeD su iste kao i opcije naredbe\psplotThreeD, i prikazane su u tablici 5.1.

U sljedecem primjeru nacrtana je cilindricna spirala poluprecnika 2.5, cijesu parametarske jednacine:

x = r cos ty = r sin tz = t/600

x y

z\begin{pspicture}(-3.3,-2)(3.2,5.4)

\pstThreeDCoor[

linecolor=black!75,

linewidth=0.8pt,

zMax=5.5]

\parametricplotThreeD[

linecolor=NiceRed,

xPlotpoints=200,

linewidth=1.7pt,

plotstyle=curve](0,2160)

{2.5 t cos mul

2.5 t sin mul

t 600 div}

\end{pspicture}

Page 69: 3DGrafika

5.2 Funkcije zadane parametarski 62

U prethodnom primjeru je vrijednost parametra t za z koordinatu podi-jeljena sa 600. Razlog za to je taj sto su vrijednosti parametra t u stepenima,a interval definisanosti (0◦, 2160◦), te bi duzina spirale bila ogromna.

Umjesto uptrebe naredbe \psplotThreeD se brojne matematicke funkcijemogu predstavljati pomocu naredbe \parametricplotThreeD, ako su poz-nate njihove parametarske jednacine. Isto tako je moguce, na primjer, umje-sto upotrebe \pstThreeDSphere naredbe nacrtati sferu pomocu njenih para-metarskih jednacina. Parametarske jednacine sfere se mogu zadati na dvanacina:

x = r cos t · sin uy = r cos t · cos u (⋆)z = r sin t

x = r cos u · sin ty = r cos u · cos t (⋆⋆)z = r sin u

Njihovim primjenama se ne dobijaju isti grafici, sto ilustruje sljedeci pri-mjer.

x y

z

x y

z

\begin{pspicture}(-3.2,-2.5)(2.8,3.2)

\pstThreeDCoor[

xMax=3,yMax=3,zMax=3,

linecolor=black!75,

linewidth=1pt]

\parametricplotThreeD[

linecolor=NiceRed,

plotstyle=curve,

linewidth=1.15pt,

yPlotpoints=20](0,360)(0,360)

{2 t cos mul u sin mul

2 t cos mul u cos mul

2 t sin mul}

\end{pspicture}

\begin{pspicture}(-3.2,-2.5)(2.8,3.5)

\pstThreeDCoor[

xMax=3,yMax=3,zMax=3,

linecolor=black!75,

linewidth=1pt]

\parametricplotThreeD[

linecolor=NiceRed,

linewidth=1.15pt,

plotstyle=curve,

yPlotpoints=20](0,360)(0,360)

{2 u cos mul t sin mul

2 u cos mul t cos mul

2 u sin mul}

\end{pspicture}

Obje \parametricplotThreeD naredbe moguce je upotrijebiti zajednounutar istog pspicture okruzenja, a rezultat je prikazan na sljedecem pri-mjeru.

Page 70: 3DGrafika

5.2 Funkcije zadane parametarski 63

x y

z\begin{pspicture}(-3.2,-3)(2.8,3.6)

\pstThreeDCoor[xMax=3,yMax=3,zMax=3,

linecolor=black!75,linewidth=1pt]

\psset{

linecolor=NiceRed,yPlotpoints=20,

plotstyle=curve,linewidth=1.15pt}

\parametricplotThreeD(0,360)(0,360)

{2 t cos mul u sin mul

2 t cos mul u cos mul

2 t sin mul}

\parametricplotThreeD(0,360)(0,360)

{2 u cos mul t sin mul

2 u cos mul t cos mul

2 u sin mul}

\end{pspicture}

5.2.1 Primjeri

Pluckerov konoid

Plucker-ovi konoidi su pravcaste plohe (plohe koje nastaju pomjeranjempravca duz neke krivulje) koje zadovoljavaju sljedece parametarske jednacine:

x(u, v) = v cos uy(u, v) = v sin u k ∈ N, (u, v) ∈ [0, 2π]2

z(u, v) = 3 sin ku

Na sljedecoj slici prikazan je Plucker-ov konoid za k = 5.

x

yz

\psset{xunit=0.9,yunit=0.7}

\begin{pspicture}(-3.5,-5)(3,5)

\psset{Alpha=125,Beta=65}

\pstThreeDCoor[zMax=5.5,

linecolor=black!75,

linewidth=0.8pt]

\parametricplotThreeD[

linecolor=violet,

plotstyle=curve,

linewidth=0.2pt,

yPlotpoints=40

](0,360)(0,360)

{t cos u mul 120 div

t sin u mul 120 div

t 5 mul sin 3 mul}

\end{pspicture}

Page 71: 3DGrafika

5.2 Funkcije zadane parametarski 64

Torus

Torus je ploha koja nastaje rotacijom kruznice poluprecnika r1 oko ose kojaje od njenog sredista udaljena za r2. Ako kruznica lezi u xz ravni i rotira seoko z ose, parametarske jednacine torusa su:

x(u, v) = (r2 + r1 cos v) cos uy(u, v) = (r2 + r1 cos v) sin u (u, v) ∈ [0, 2π]2

z(u, v) = r1 sin v

Torus sa poluprecnicima r1 = 1 i r2 = 1.7 nad podrucjem [0, 3π/2] × [0, 2π]prikazan je na slici ispod.

x

y

z\begin{pspicture}(-3.2,-2.6)(3,4.2)

\psset{Alpha=145,Beta=30}

\pstThreeDCoor[

xMax=3.75,zMax=3.5,

linecolor=black!75,

linewidth=0.8pt]

\parametricplotThreeD[

linecolor=MidnightBlue,

plotstyle=curve,

yPlotpoints=60,

linewidth=.6pt](0,270)(0,360)

{u cos 1.7 add t cos mul

u cos 1.7 add t sin mul

u sin}

\end{pspicture}

Evo primjera jos jedne slicne plohe.

xy

z\psset{unit=1.25}

\begin{pspicture}(-2.8,-2.4)(3,3)

\psset{Alpha=40,Beta=60}

\pstThreeDCoor[

xMax=3,yMax=3,zMax=5,

linecolor=black!75,

linewidth=0.8pt]

\parametricplotThreeD[

linecolor=thistle,

plotstyle=curve,

yPlotpoints=60,

linewidth=.5pt](0,360)(0,360)

{t sin t cos u sin add u cos}

\end{pspicture}

Page 72: 3DGrafika

5.2 Funkcije zadane parametarski 65

Njene parametarske jednacine su:

x(u, v) = sin uy(u, v) = cos u + sin v (u, v) ∈ [0, 2π]2

z(u, v) = cos v

Helikoid

Helikoid je, takoder, pravcasta ploha koja nastaje istovremenom rotacijomi translacijom neke duzine. Kraj te duzine se krece po osi okomitoj na tuduzinu, a drugi kraj rotira oko te iste ose. Parametarske jednacine helikoidasu:

x(u, v) = sinh u cos vy(u, v) = sinh u sin v u ∈ R, v ∈ [0, 2π]z(u, v) = v

x y

z

\psset{unit=0.85}

\begin{pspicture}(-4,-7)(3,6.2)

\psset{Beta=36}

\pstThreeDCoor[

xMin=-2,yMin=-2,zMin=-6,

xMax=5,yMax=5,zMax=7,

linecolor=black!80,

linewidth=0.8pt]

\parametricplotThreeD[

linecolor=NiceRed,

plotstyle=curve,

yPlotpoints=300,

linewidth=.5pt](-2,2)(-6,6)

{2.71 t exp 2.71 -1 t mul exp

sub 2 div u 57 mul cos mul

2.71 t exp 2.71 -1 t mul exp

sub 2 div u 57 mul sin mul

u}

\end{pspicture}

Page 73: 3DGrafika

5.2 Funkcije zadane parametarski 66

Hiperboloid

Parametarske jednacine jednostranog hiperboloida su:

x(u, v) = cosh u cos vy(u, v) = cosh u sin v u ∈ R, v ∈ [0, 2π]z(u, v) = sinh u

a dvostranog:

x(u, v) = sinh u cos vy(u, v) = 1/2 sinh u sin v u ∈ R, v ∈ [0, 2π]z(u, v) = ± cosh u

Na sljedecoj slici prikazan je dvostrani hiperboloid.

x y

z

\psset{unit=0.85}

\begin{pspicture}(-4,-6.8)(3,7.1)

\pstThreeDCoor[

xMin=-4,yMin=-4,zMin=-5.5,

xMax=4,yMax=4,zMax=5.5,

linecolor=black!80,

linewidth=0.8pt]

\psset{linecolor=MidnightBlue,

plotstyle=curve,

yPlotpoints=100,

linewidth=.5pt}

\parametricplotThreeD

(-2.3,2.3)(0,360)

{2.71 t exp 2.71 -1 t mul exp

sub 2 div u cos mul

2.71 t exp 2.71 -1 t mul exp

sub 4 div u sin mul

2.71 t exp 2.71 -1 t mul exp

add 2 div}

\parametricplotThreeD

(-2.3,2.3)(-180,180)

{2.71 t exp 2.71 -1 t mul exp

sub 2 div u cos mul

2.71 t exp 2.71 -1 t mul exp

sub 4 div u sin mul

2.71 t exp 2.71 -1 t mul exp

add 2 div -1 mul}

\end{pspicture}

Page 74: 3DGrafika

5.2 Funkcije zadane parametarski 67

Vivianijeva krivulja

Viviani-jeva krivulja je kriva cije su parametarske jednacine:

x(t) = 1 + cos ty(t) = sin t t ∈ [−2π, 2π]

z(t) = 2 sint

2

Njen grafik prikazan je na sljedecoj slici.

x

y

z

\psset{xunit=1.5,yunit=1.4,

Alpha=165,Beta=38}

\begin{pspicture}(-2.2,-3)(3,3.4)

\pstThreeDCoor[

xMin=-2,yMin=-3,zMin=-3.25,

xMax=2.5,yMax=2.5,zMax=3.5,

linecolor=black!80,

linewidth=.8pt]

\psset{linecolor=DarkBlue,

plotstyle=curve,

linewidth=1.7pt}

\parametricplotThreeD(-360,360)

{t cos 1 add

t sin

t 2 div sin 2 mul}

\end{pspicture}

Interesantna je cinjenica da je Vivianijeva krivulja prodorna kriva kuglesa centrom u koordinatnom pocetku i poluprecikom r = 2 i cilindra cija jeduzina MN osa sa krajnjim tackama M(1, 0,−2) i N(1, 0, 2), a poluprecnikosnovice r = 2.

Parametarske jednacine opisanog cilindra su:

x(u, v) = cos u + 1y(u, v) = sin u (u, v) ∈ [0, 2π] × [−2, 2]z(u, v) = v

a grafik je predstavljen na slici zajedno sa Vivianijevom krivuljom.

Takoder su prikazani kugla sa centrom u koordinatnom pocetku, poluprecnika2, cilindar i Vivianijeva krivulja na istoj slici.

Page 75: 3DGrafika

5.2 Funkcije zadane parametarski 68

x

y

z

\psset{xunit=1.5,yunit=1.4,

Alpha=165,Beta=38}

\begin{pspicture}(-2.2,-3.25)(3,3.65)

\pstThreeDCoor[

xMin=-2,yMin=-3,zMin=-3.25,

xMax=2.5,yMax=2.5,zMax=3.5,

linecolor=black!80,

linewidth=.8pt]

\psset{linecolor=DarkOrchid!90,

plotstyle=curve,

yPlotpoints=30,

linewidth=1.25pt}

\parametricplotThreeD(0,360)(-2,2)

{t cos 1 add t sin u}

\psset{linecolor=DarkBlue,

plotstyle=curve,

linewidth=1.7pt}

\parametricplotThreeD(-360,360)

{t cos 1 add

t sin

t 2 div sin 2 mul}

\end{pspicture}

x

y

z

\psset{xunit=1.5,yunit=1.4,

Alpha=165,Beta=38}

\begin{pspicture}(-2.4,-3.65)(3,4)

\pstThreeDCoor[

xMin=-2,yMin=-3,zMin=-3.25,

xMax=2.5,yMax=2.5,zMax=3.5,

linecolor=black!80,

linewidth=.8pt]

\psset{plotstyle=curve,

linecolor=DarkOrchid!90}

\parametricplotThreeD[

yPlotpoints=70,

linewidth=0.25pt](0,360)(0,360)

{2 t cos mul u sin mul

2 t cos mul u cos mul

2 t sin mul}

\parametricplotThreeD[

yPlotpoints=30,

linewidth=1.25pt](0,360)(-2,2)

{t cos 1 add t sin u}

\parametricplotThreeD[

linecolor=DarkBlue,

linewidth=1.7pt](-360,360)

{t cos 1 add t sin t 2 div sin 2 mul}

\end{pspicture}

Page 76: 3DGrafika

Dodatak A

Graficko predstavljanje

datoteka podataka

Graficko predstavljanje datoteka podataka koje podrzavaju 3D koordinate omogu-

cava pst-3dplot paket, upotrebom naredbi, veoma slicnih odgovarajucim nare-

dbama pst-plot paketa. U narednom odjeljku su, bez ozbiljnijeg pristupa,

pomenute naredbe definisane.

A.1 Naredbe

Graficko predstavljanje datoteka podataka koje podrzavaju 3D koordinatevrsi se pomocu naredbi:

⋆ \fileplotThreeD[Opcije ]{datoteka }

\dataplotThreeD[Opcije ]{datoteka }

\listplotThreeD[Opcije ]{datoteka } ⋆

Za njihovo koristenje potrebna je datoteka podataka, unutar koje podaci,po dogovoru, moraju biti predstavljeni nekim od sljedecih nacina:

0.0000 1.0000 0.0000

-0.4207 0.9972 0.0191

...

0.0000, 1.0000, 0.0000

-0.4207, 0.9972, 0.0191

...

( 0.0000,1.0000,0.0000)

(-0.4207,0.9972,0.0191)

...

Page 77: 3DGrafika

A.1 Naredbe 70

{ 0.0000,1.0000,0.0000}

{-0.4207,0.9972,0.0191}

...

Kako ce podaci biti graficki prikazani, zavisi od izbora opcije za parametarplotstyle, a moguce su sljedece vrijednosti: dots, line, polygon, curve,ccurve, ecurve.

Vise o naredbama za graficko predstavljanje datoteka podataka moguce jenaci u djelu 3D plots: PST-3dplot, A PSTricks package for drawing 3d objects,v1.83 – autor Herbert Voß.

Page 78: 3DGrafika

Dodatak B

Paket PST-light3d

pst-light3d je pstricks paket koji omogucava dodavanje trodimenzionalnih

efekata na tekstu i dvodimenzionalnim pstricks graficima. Trodimenzinalni

efekti se postizu upotrebom dvije osnovne pst-ligh3d naredbe:

⋆ \PstLightThreeDText

⋆ \PstLightThreeDGraphic

U narednim odjeljcima ce, kroz brojne primjere, biti ilustrovan nacin rada svake

od njih, uz dodatnu upotrebu odredenih parametara.

B.1 Naredba \PstLightThreeDTextNaredba je definisana sa

⋆ \PstLightThreeDText[Opcije ]{Tekst } ⋆

i bit ce ilustrovana kroz naredne primjere.

B.1.1 Primjeri

Parametar linestyle

\DeclareFixedFont{\Bf}{T1}{ptm}{b}{n

}{2.5cm}

\PstLightThreeDText[fillstyle=solid,

fillcolor=lavender]{\Bf Tekst

}\\[0.5cm]

\PstLightThreeDText[fillcolor=

lavender,fillstyle=solid,linestyle

=none]{\Bf Tekst}%

Page 79: 3DGrafika

B.1 Naredba \PstLightThreeDText 72

Parametar LightThreeDAngle

\psset{linestyle=none,fillstyle=solid

,fillcolor=DarkViolet}

\DeclareFixedFont{\Bf}{T1}{ptm}{b}{n

}{2.5cm}

\PstLightThreeDText[LightThreeDAngle

=0]{\Bf Tekst}\\[0.5cm]

\PstLightThreeDText[LightThreeDAngle

=90]{\Bf Tekst}

Parametri LightThreeDXLength i LightThreeDYLength

\psset{linestyle=none,fillstyle=solid

,fillcolor=thistle}

\DeclareFixedFont{\Bf}{T1}{ptm}{b}{n

}{2.5cm}

\PstLightThreeDText[

LightThreeDXLength=0.5,

LightThreeDYLength=-1]{\Bf Tekst

}\\[1.2cm]

\PstLightThreeDText[

LightThreeDXLength=-0.5,

LightThreeDYLength=0.5]{\Bf Tekst

}%

Parametar LightThreeDColorPsCommand

\psset{linestyle=none,fillstyle=solid,

fillcolor=thistle}

\DeclareFixedFont{\Sf}{T1}{phv}{b}{n}{3

cm}

\PstLightThreeDText[

LightThreeDColorPsCommand=1.2

divsetgray]{\Sf 752}\\[0.5cm]

\PstLightThreeDText[

LightThreeDColorPsCommand=2.5 div

setgray]{\Sf 752}%

Page 80: 3DGrafika

B.2 Naredba \PstLightThreeDGraphic 73

\psset{linestyle=none,fillstyle=solid}

\DeclareFixedFont{\Rm}{T1}{ptm}{m}{n}{3

cm}

\PstLightThreeDText[fillcolor=my_violet,

LightThreeDColorPsCommand=2.5

div 0.7 exch 0.8 sethsbcolor]{\Rm

687}\\[0.5cm]

\PstLightThreeDText[fillcolor=DarkGreen,

LightThreeDColorPsCommand=2

div 0.5 exch 0.2 exch sethsbcolor]{\Rm

687}

\DeclareFixedFont{\Rmb}{T1}{ptm}{m}{n}{3.5cm}

\PstLightThreeDText[linestyle=none,fillstyle=solid,fillcolor=MidnightBlue,

LightThreeDColorPsCommand=1.6 div 0.55 exch 0.7 exch sethsbcolor]{\Rmb

PSTricks}

B.2 Naredba \PstLightThreeDGraphicNaredba je definisana sa

⋆ \PstLightThreeDGraphic[Opcije ]{pst-plot naredbe } ⋆

gdje se u dijelu za opcije koriste svi vec pomenuti parametri. Ova naredbaje, takoder, ilustrovana kroz primjere.

B.2.1 Primjeri

\psset{unit=0.5cm,linestyle=solid,

fillstyle=none}

\begin{pspicture}(-0.25,-4.5)(2.25,4)

\PstLightThreeDGraphic[

LightThreeDXLength=0.4,

LightThreeDColorPsCommand=

1.8 div 0.9 exch 0.4 exch sethsbcolor]

{\pscurve(0,2)(1,-3)(2,2)(4,3)(7,0)}

\end{pspicture}

Page 81: 3DGrafika

B.2 Naredba \PstLightThreeDGraphic 74

\psset{unit=0.5cm,linestyle=solid,

fillstyle=none}

\begin{pspicture}(-0.25,-4.5)(2.25,4)

\PstLightThreeDGraphic[

LightThreeDXLength=0.8,

LightThreeDColorPsCommand=

3 div 0.82 exch 0.9 exch sethsbcolor]

{\pspolygon(0,2)(1,-3)(2,0)(4,1)(6,1)(7,3)}

\end{pspicture}

\psset{unit=0.5cm,linestyle=solid,

fillstyle=none}

\begin{pspicture}(-0.25,-4.5)(2.25,4)

\PstLightThreeDGraphic[

LightThreeDXLength=0.8,

LightThreeDColorPsCommand=

3 div 0.6 exch 0.9 exch sethsbcolor]

{\psellipse(3,0)(1.5,3)}

\end{pspicture}

\SpecialCoor \def\PstCoordinates{}

\Multido{\nDistance=0.00+0.02,\iAngle=0+20

}{200}{\edef\PstCoordinates{

\PstCoordinates(\nDistance;\iAngle)}}

\psset{unit=0.5cm}

\begin{pspicture}(-4,-4.8)(4.4,4.6)

\PstLightThreeDGraphic[LightThreeDLength=0.2,

LightThreeDColorPsCommand=

2.8 div 0.8 exch 0.4 exch sethsbcolor]

{\expandafter\pscurve\PstCoordinates}

\end{pspicture}

\SpecialCoor \def\PstCoordinates{}

\Multido{\nDistance=0.00+0.02,\iAngle=0+20

}{200}{\edef\PstCoordinates{

\PstCoordinates(\nDistance;\iAngle)}}

\psset{unit=0.5cm}

\begin{pspicture}(-4,-5.45)(4.4,5.25)

\PstLightThreeDGraphic[LightThreeDLength=0.2,

LightThreeDColorPsCommand=

/Counter Counter 0.0001 add def 2 mul Counter

exch 0.8 exch sethsbcolor,

LightThreeDAngle=30]{\pstVerb{/Counter 0 def}

\expandafter\pscurve\PstCoordinates}

\end{pspicture}

Page 82: 3DGrafika

B.2 Naredba \PstLightThreeDGraphic 75

-1.2

-1.0

-0.8

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

0 0.2 0.4 0.6 0.8 1.0

sin 10x

0.5 cos 30x

x

\psset{xunit=8cm,yunit=3cm}

\begin{pspicture}(-0.45,-1.6)(1,1.4)

\psaxes[Dx=0.2,Oy=-1.2,Dy=0.2,tickstyle=top,

axesstyle=frame](0,-1.2)(1,1.2)

\psset{plotpoints=500,LightThreeDXLength=0.3,

LightThreeDYLength=-0.3}

\PstLightThreeDGraphic[LightThreeDColorPsCommand=1 div 0.9 exch

0.2 exch sethsbcolor]{\psplot{0}{0.95}{x 10 mul 57.296 mul sin}}

\PstLightThreeDGraphic[LightThreeDColorPsCommand=1.6 div 0.55 exch

0.7 exch sethsbcolor]{\psplot{0}{0.95}{x 30 mul 57.296 mul cos 2

div}}

\rput(-0.3,0.1){\thistle{$\sin 10x$}}

\rput(-0.3,-0.1){\MidnightBlue{$0.5\cos 30x$}}

\rput(0.5,-1.5){$x$}

\end{pspicture}

Page 83: 3DGrafika

Dodatak C

Ostali PSTricks 3D paketi

Kao sto je vec na samom pocetku pomenuto, postoji nekoliko pstricks paketa

za crtanje trodimenzionalnih grafickih objekata. Ovdje ce biti pomenuti neki

od njih, dok se o ostalima vise moze naci na web adresi homepage stranice

pstricks-a:

⋆ http://tug.org/PSTricks/,

ili konkretno za pakete:

⋆ http://tug.org/PSTricks/main.cgi?file=packages.

Na ovoj adresi moguce je vrsiti download svih dostupnih paketa, kao i odgo-

varajuce dokumentacije koja sadrzi sva potrebna uputstva za koristenje.

C.1 pst-solides3d

Paket je dostupan i na adresi

⋆ http://syracuse.eu.org/syracuse/pstricks/pst-solides3d/.

Pomocu ovog paketa moguce je graficko predstavljanje definisanih ge-ometrijskih tijela, kao i koristenje vec postojecih (predefinisanih unutar samogpaketa, koje se u dokument ukljucuju parametrom object=vrsta objekta).Geometrijska tijela mogu biti prikazana sa ili bez skrivenih ivica, cije bojemogu varirati sa efektima sjencenja.

Posebno je znacajan za predstavlja-nje matematickih funkcija. Poredenjaradi, pomocu pst-solides3d paketa moguce je nacrtati funkcije koje ceizgledati kao da su nacrtane pomocu software paketa Mathematica.

Ovaj paket omogucava i projekciju dvodimenzinalnog crteza/teksta nabilo koju ravan proizvoljog geometrijskog tijela.

Page 84: 3DGrafika

C.2 pst-ob3d 77

C.2 pst-ob3d

Paket sluzi za predstavljanje osnovnih 3D grafickih objekata. Do sada po-stoje samo dvije definisane naredbe: \PstCube za crtanje kocke i \PstDieza crtanje kockice za kockanje. Ipak, postoje brojni dodatni parametri, cijimse mastovitim kombinacijama dobijaju zanimljivi oblici.

C.3 pst-vue3d

3D reprezentacija objekata je jedan od najinteresantnijih aspekata komjuterskeznanosti i postoje razne oblasti industrije koje se koriste istim (dizajn auto-mobila, aviona, video igrica . . . ). Ovaj paket omogucava, upravo za ovakvesvrhe potrebnu, manipulaciju 3D objektima, koja se postize odgovarajucimizborom perspektive posmatranja objekta. Jedna od ovih manipulacija je imogucnost predstavljanja unutrasnjosti 3D objekata . . .

C.4 pst-gr3d

pst-gr3d je pstricks paket za crtanje trodimenzionalne mreze. Postojisamo jedna glavna naredba \PstGridThreeD i nekoliko parametara za speci-fikaciju karakteristika 3D mreze.

C.5 pst-fr3d

Ovaj paket omogucava crtanje trodimenzionalnih okvira (framed boxes),koristenjem naredbe \PstFrameBoxThreeD. Ovo je posebno korisno za cr-tanje 3D objekata, kao sto su dugmad.

C.6 pst-circ

pst-circ je kolekcija grafickih elemenata, baziranih na pstricks-u, koji sekoriste za predstavljanje elemenata elektricnih kola. Tako je moguce, nji-hovim kombinovanjem, prikazati razna elektricna kola. Takoder je mogucestrelicama naznaciti ogovarajuce smjerove proticanja struja, kao i razlike po-tencijala . . .

Page 85: 3DGrafika

Bibliografija

[1] Herbert Voß. 3D plots: PST-3dplot - A PSTricks package for drawing 3dobjects, v1.83 ; November 2008.

[2] Denis Girou and Peter Kleiweg. The pst-light3d package version 0.11- A PSTricks package for three dimensional lighten effect on charactersand PSTricks graphics ; August 2007.

[3] Dominique Rodriguez and Herbert Voß. pstricks-add - Additionals Ma-cros for pstricks v.3.00 ; December 2007.

[4] Timothy Van Zandt. PSTricks - PostScript macros for Generic TEX ;March 2003.

[5] PSTricks web site∼Packageshttp://tug.org/PSTricks/main.cgi?file=packages