24.05.2015 Views

Diplomski rad 3D Grafika u LATEX-u - PMF - Univerzitet u Tuzli

Diplomski rad 3D Grafika u LATEX-u - PMF - Univerzitet u Tuzli

Diplomski rad 3D Grafika u LATEX-u - PMF - Univerzitet u Tuzli

SHOW MORE
SHOW LESS

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

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

JU <strong>Univerzitet</strong> u <strong>Tuzli</strong><br />

Prirodno-Matematički fakultet<br />

Odsjek: Matematika<br />

<strong>Diplomski</strong> <strong>rad</strong><br />

<strong>3D</strong> <strong>Grafika</strong> u L A TEX-u<br />

Juni, 2009.<br />

Amela Halidović


Mentor <strong>rad</strong>a: Nermin Okičić, docent<br />

Rad ima 78 stranica.<br />

Redni broj diplomskog <strong>rad</strong>a:


⋆ Rezime<br />

U ovom diplomskom <strong>rad</strong>u je ob<strong>rad</strong>¯en problem <strong>3D</strong> grafike u L A TEX-u, bazirajući<br />

se na pstricks paketu pst-3dplot.<br />

U prvom poglavlju je dat matematički osvrt na samo funkcionisanje paketa<br />

pst-3dplot. U nastavku su definisane i pobliže objašnjene brojne naredbe za<br />

crtanje koordinatnog sistema, osnovnih <strong>3D</strong> grafičkih objekata (tačka, linija,<br />

trougao, paralelogram, paralelopiped), složenih <strong>3D</strong> grafičkih objekata (elipsa,<br />

kružnica, cilindar, paraboloid, kugla). Ipak, akcent je na petom poglavlju,<br />

koje je posvećeno grafičkom predstavljanju matematičkih funkcija.<br />

U dodatku je prezentiran paketpst-light3d, kao i osnovne karakteristike<br />

ostalih pstricks paketa za crtanje trodimezionalnih grafičkih objekata.


⋆ Summary<br />

In this thesis is elaborated the problem of <strong>3D</strong> graphics in L A TEX. This<br />

elaboration is based on pstricks package pst-3dplot.<br />

The first chapter is giving a mathematical view on how this package works.<br />

Hereafter are defined and closely explained many macros for drawing the<br />

coordinate axes, basic <strong>3D</strong> graphical objects (dot, line, triangle, square, box),<br />

complex <strong>3D</strong> graphical objects (ellipse, circle, cylinder, paraboloid, sphere).<br />

However, the accent is on the fifth chapter, that is dedicated to the plotting<br />

mathematical functions.<br />

In the appendix is introduced pst-light3d package, as well as basic<br />

characteristics of the other pstricks packages for plotting three dimensional<br />

graphical objects.


<strong>3D</strong> <strong>Grafika</strong> u <strong>LATEX</strong>-u<br />

PST-3dplot<br />

PSTricks paket za crtanje <strong>3D</strong> grafičkih objekata


Sadržaj<br />

1 PST-3dplot sa stanovišta Matematike 1<br />

1.1 <strong>3D</strong> koordinatni sistem . . . . . . . . . . . . . . . . . . . . . . 1<br />

1.2 Paralelna projekcija . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

1.3 Kako pokrenuti <strong>3D</strong> crtanje? . . . . . . . . . . . . . . . . . . . 7<br />

2 Koordinatni sistem 8<br />

2.1 Crtanje koordinatnog sistema . . . . . . . . . . . . . . . . . . 8<br />

2.1.1 Parametri Alpha i Beta . . . . . . . . . . . . . . . . . 11<br />

2.1.2 Parametri za numeraciju koordinatnih osa . . . . . . . 13<br />

2.1.3 Parametri za rotaciju . . . . . . . . . . . . . . . . . . . 18<br />

2.2 <strong>3D</strong> koordinatna mreža . . . . . . . . . . . . . . . . . . . . . . 20<br />

2.3 Put naredbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

2.3.1 \pstThreeDPut . . . . . . . . . . . . . . . . . . . . . . 25<br />

2.3.2 \pstPlanePut . . . . . . . . . . . . . . . . . . . . . . 26<br />

2.4 Povezivanje objekata . . . . . . . . . . . . . . . . . . . . . . . 29<br />

3 Osnovni <strong>3D</strong> grafički objekti 31<br />

3.1 Tačka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

3.2 Linija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

3.3 Trougao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3.4 Paralelogram . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

3.5 Paralelopiped . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

4 Složeni <strong>3D</strong> grafički objekti 42<br />

4.1 Elipse i kružnice . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

4.1.1 Elipsa . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

4.1.2 Kružnica . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

4.2 Površi drugog reda . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

4.2.1 Cilindar . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

4.2.2 Paraboloid . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

4.2.3 Sfera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51


SADRŽAJ<br />

ii<br />

5 Matematičke funkcije 52<br />

5.1 Funkcije zadane eksplicitno . . . . . . . . . . . . . . . . . . . . 52<br />

5.1.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

5.2 Funkcije zadane parametarski . . . . . . . . . . . . . . . . . . 61<br />

5.2.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

A Grafičko predstavljanje datoteka podataka 69<br />

A.1 Naredbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

B Paket PST-light3d 71<br />

B.1 Naredba \PstLightThreeDText . . . . . . . . . . . . . . . . 71<br />

B.1.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

B.2 Naredba \PstLightThreeDGraphic . . . . . . . . . . . . . . 73<br />

B.2.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

C Ostali PSTricks <strong>3D</strong> paketi 76<br />

C.1 pst-solides3d . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

C.2 pst-ob3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

C.3 pst-vue3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

C.4 pst-gr3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

C.5 pst-fr3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

C.6 pst-circ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77


Poglavlje 1<br />

PST-3dplot sa stanovišta<br />

Matematike<br />

Dobro poznati pstricks paket nudi odlične makro naredbe koje pružaju mogućnost<br />

unošenja manje ili više složenih grafika u dokument. pstricks paket je<br />

osnova za nekoliko drugih dodatnih paketa, koji su uglavnom nazvani pst-xxx,<br />

kao pst-plot. Postoji nekoliko paketa za crtanje trodimenzionalnih grafičkih<br />

objekata. Jedan od njih je pst-3dplot, koji je više sličan pst-plot paketu za<br />

dvodimenzionalne objekte i matematičke funkcije.<br />

1.1 <strong>3D</strong> koordinatni sistem<br />

Prilikom crtanja objekata u dvodimenzionalnom ili trodimenzionalnom sistemu<br />

potreban nam je referentni okvir prema kome specificiramo lokaciju<br />

i veličinu objekta kojeg crtamo. Za dvodimenzionalno crtanje, referentni<br />

okvir je zapravo pravougli koordinatni sistem u ravni, koji se sastoji iz dvije<br />

perpendikularne (presjecaju se pod pravim uglom) ose, x i y.<br />

Za trodimenzionalno crtanje potrebno je dvodimenzionalni koordinatni<br />

sistem proširiti trećom dimenzijom koja daje komponentu dubine. Tako se<br />

uvodi nova osa z koja je perpendikularna na x i y ose i predstavlja liniju<br />

koja se crta ka posmatraču. Ose x, y i z, koje se sijeku u jednoj tački<br />

i perpendikularne su med¯usobno, predstavljaju trodimenzionalni pravougli<br />

koordinatni sistem i referentni okvir za <strong>3D</strong> crtanje. Na slici 1.1 je predstavljen<br />

takav <strong>3D</strong> koordinatni sistem, gdje y osa stremi pravo ka posmatraču.<br />

z<br />

x<br />

y<br />

Slika 1.1: <strong>3D</strong> koordinatni sistem (y osa izvire iz ravni papira)


1.2 Paralelna projekcija 2<br />

Med¯utim, kako se y osa ne vidi, ovakav položaj koordinatnog sistema<br />

ne daje željeni osjećaj ‘prostornosti’ na papiru. Zbog toga se uvode uglovi<br />

rotacije <strong>3D</strong> koordinatnog sistema, ugao horizontalne i ugao vertikalne rotacije.<br />

Ako zarotiramo pogled na koordinatni sistem sa slike 1.1 horizontalno u<br />

odnosu na z osu za ugao α i vertikalno u odnosu na x osu za ugao β, imat<br />

ćemo koordinatni sistem na slici 1.2.<br />

z<br />

x<br />

y<br />

Slika 1.2: Zarotirani <strong>3D</strong> koordinatni sistem<br />

Ugao α je ugao horizontalne, a ugao β ugao vertikalne rotacije <strong>3D</strong> sistema.<br />

Dakle, α je ugao izmed¯u x ose i horizontalne ose ravni papira, a β ugao izmed¯u<br />

z ose i vertikalne ose ravni papira. Naravno, pod pozitivnom rotacijom se<br />

podrazumijeva rotacija u smjeru suprotnom kretanju kazaljki na satu.<br />

1.2 Paralelna projekcija<br />

Od ranije je poznato kako se specificira položaj u <strong>3D</strong> prostoru pomoću<br />

pravouglih koordinata. Med¯utim, bez odbzira na to kako možete da ubjedite<br />

svoje oko, na papiru postoje samo dvije dimenzije. Time se postavlja<br />

pitanje: Kako L A TEX prevodi <strong>3D</strong> pravougle koordinate u dvodimenzionalne<br />

koje mogu da se crtaju na papiru? Kratak odgovor bi bio “Trigonometrija<br />

i prosta manipulacija matricom”. Ipak, to i nije tako jednostavno i biće u<br />

nastavku detaljno objašnjeno.<br />

Prva činjenica koju treba shvatiti jeste projekcija, kojom se <strong>3D</strong> koordinate<br />

spljošte, odnosno projektuju na 2D površinu (ekran ili ravan papira). To je<br />

kao crtanje flomasterom obrisa nekog objekta na staklu koje se nalazi ispred<br />

njega. Kada pomjerimo staklo, na njemu se još mogu vidjeti konture objekta<br />

sa svim njegovim ugaonim ivicama. Na slici 1.3, kuća je projektovana na<br />

ravan komad stakla.


1.2 Paralelna projekcija 3<br />

Slika 1.3: Projekcija <strong>3D</strong> odjekta na 2D površinu<br />

Zamislimo sada <strong>3D</strong> koordinatni sistem koji je od ravni papira zarotiran<br />

za horizontalni ugao rotacije α i vertikalni ugao rotacije β. Tačka u ovom <strong>3D</strong><br />

sistemu je odred¯ena svojim <strong>3D</strong> koordinatama. Njena ortogonalna projekcija<br />

na ravan papira za posmatrača je tačka koju ne vidi i vizuelno doživljava<br />

kao tačku koja se nalazi na papiru ravno iza projektovane tačke. Ako sve<br />

ovo predstavimo na papiru, dobit ćemo sliku na kojoj će se polazna tačka<br />

i njena ortogonalna projekcija poklapati. Upravo ovo je osnovni koncept<br />

na kome se zasniva <strong>3D</strong> crtanje u L A TEX-u upotrebom pst-3dplot paketa:<br />

tačka specificirana <strong>3D</strong> koordinatama se prvo transformiše u tačku sa 2D<br />

koordinatama (svoju ortogonalnu projekciju), koja se onda može p<strong>rad</strong>staviti<br />

na dvodimenzionalnoj površini kakva je ravan papira.<br />

y E<br />

z<br />

y ∗<br />

•<br />

P(x,y,z)<br />

P ∗ (x ∗ ,y ∗ )<br />

x<br />

x ∗<br />

α<br />

α<br />

x·sinα<br />

α x·cosα y·cosα<br />

y·sinα<br />

L M x·cosα α N<br />

y·cosα + x·sinα<br />

P xy<br />

y<br />

x E<br />

y·sinα − x·cosα<br />

Slika 1.4: Dužine u 2D i <strong>3D</strong> sistemima


1.2 Paralelna projekcija 4<br />

Na slici 1.4 prikazana je tačka P(x,y,z) u trodimenzionalnom koordinatnom<br />

sistemu (x,y,z) sa transformacijom u P ∗ (x ∗ ,y ∗ ), tačku u dvodimenzionalnom<br />

koordinatnom sistemu (x E ,y E ) ravni papira. Kakve zapravo koordinate<br />

ima tačka P ∗ u ravni (x E ,y E )?<br />

Spuštanjem okomica sa koordinatnih osa x i y na y E osu formiraju se dva<br />

pravougla trougla sa hipotenuzama x i y. Zbog jednakosti oštrih uglova s<br />

paralelnim, odnosno ortogonalnim kracima, uočeni pravougli trouglovi imaju<br />

po jedan oštar ugao jednak uglu α. Sada su katete pravouglih trouglova x·sinα<br />

i x·cosα, odnosno y·sinα i y·cosα za drugi trougao.<br />

Dvodimenzionalna x koordinata x ∗ tačke P ∗ je razlika dvije dužine LN i<br />

LM. Uočimo pravougli trougao △MNP xy . Njegova hipotenuza je NP xy = x,<br />

a stranice NP xy i MN ortogonalne na y, odnosno y E osu, te su uglovi ∠NLK<br />

i α jednaki kao dva oštra ugla s ortogonalnim kracima. Zbog toga je dužina<br />

MN jednaka x·cosα, i za koordinatu x ∗ dobijamo<br />

x ∗ = y·sinα − x·cosα.<br />

Jasno je da će koordinata x ∗ uvijek zavisiti samo od horizontalnog ugla<br />

rotacije α <strong>3D</strong> sistema, jer se vertikalna rotacija vrši okomito na horizontalnu<br />

osu x E i izlazi iz ravni papira. Zbog toga, vertikalna rotacija utiče samo na<br />

y ∗ koordinatu tačke P ∗ . Dakle, ako nema vertikalne rotacije <strong>3D</strong> sistema, tj.<br />

ako je β =0, onda je y ∗ =z. Ako je ugao β veći od 0 ◦ , onda samo koordinata<br />

y ∗ ima drugu vrijednost.<br />

Ugao β se lijepo vidi na slici 1.5, koja potiče od slike 1.1 kada se koordinatni<br />

sistem zarotira horizontalno za ugao −90 ◦ i vertikalno za ugao β.<br />

z<br />

y E<br />

z·cosβ<br />

(y·cosα + x·sinα)·sinβ<br />

y<br />

β<br />

β<br />

x<br />

y·cosα + x·sinα<br />

x E<br />

−(y·cosα + x·sinα)·sinβ<br />

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

Ortogonalna projekcija z koordinate tačke P na y E osu odsjeca na njoj<br />

dužinu z·cosβ. Ali, to još uvijek ne odred¯uje koordinatu y ∗ .


•<br />

•<br />

1.2 Paralelna projekcija 5<br />

Okomice spuštene sa koordinatnih osa x i y na osu y E na slici 1.4 predstavljaju<br />

i dužine u (x,y) ravni. Isto vrijedi i za dužinu y ·cosα + x ·sinα .<br />

Vertikalnom rotacijom <strong>3D</strong> sistema dužina y·cosα +x·sinα, kao i ravan (x,y),<br />

zaklapa ugao β sa osom x E (uglovi s ortogonalnim kracima). Na slici 1.5,<br />

dužina y·cosα + x·sinα se i vidi na y osi, zbog položaja <strong>3D</strong> sistema (x,y,z).<br />

Dužina okomice povučene sa kraja te dužine u ravni (x,y) na osu x E jednaka<br />

je (y ·cosα + x·sinα)·sinβ. Kako se ova dužina nalazi ispod x E ose ona je<br />

negativna, pa je konačno<br />

y ∗ = z·cosβ − (y·cosα + x·sinα)·sinβ.<br />

Tako dobijamo sljedeće jednačine za transformaciju <strong>3D</strong> pravouglih koordinata<br />

tačke u 2D koordinate u ravni (x E ,y E ):<br />

x ∗ = −x·cosα + y·sinα<br />

y ∗ = −(x·sinα + y·cosα)·sinβ + z·cosβ<br />

(1.1)<br />

ili, zapisano u matričnom obliku:<br />

⎛ ⎞<br />

( ) ( )<br />

x<br />

∗<br />

x<br />

− cosα sinα 0<br />

y ∗ =<br />

· ⎝y⎠ . (1.2)<br />

− sinα sinβ − cosα sinβ cosβ<br />

z<br />

Prilikom svakog crtanja trodimenzionalnih objekata pomoću pst-3dplot<br />

paketa, L A TEX vrši transformacije <strong>3D</strong> koordinata u dvodimenzionalne koje<br />

potom predstavlja na papiru.<br />

z<br />

z<br />

2<br />

(1,2,2)<br />

1<br />

y ∗ (x∗ ,y ∗ )<br />

-2<br />

-1<br />

x ∗ 1 2<br />

x<br />

y<br />

x<br />

-1<br />

y<br />

Slika 1.6<br />

Slika 1.7<br />

Na slici 1.6 nacrtan je <strong>3D</strong> koordinatni sistem, sa uglovima rotacije α=45 ◦<br />

i β = 30 ◦ , te tačka sa koordinatama (1, 2, 2) pomoću naredbi pst-3dplot<br />

paketa. Dvodimenzionalne koordinate tačke (1, 2, 2), izračunate pomoću<br />

jednačina (1.1), su:


•<br />

•<br />

<br />

•<br />

<br />

1.2 Paralelna projekcija 6<br />

√ √<br />

2 2<br />

x ∗ = −1 ·<br />

2 + 2 · ≈ 0.7071 ,<br />

(√ √ ) 2<br />

2 2<br />

y ∗ = −<br />

2 + 2 · · 1<br />

√<br />

3<br />

2 2 + 2 · 2 ≈ 0.6714 .<br />

Na slici 1.7 prikazan je i 2D koordinatni sistem, u kojem su koordinate tačke<br />

(1, 2, 2) upravo izračunate (x ∗ ,y ∗ ).<br />

Na narednoj slici predstavljena je još jedna ilustracija. Na prvom crtežu<br />

su nacrtane tačke (1, 2, 2) i (2, 1, 3) u <strong>3D</strong> sistemu. Koristeći formule (1.1) dobijaju<br />

se transformacije ovih tačaka u dvodimenzionalne tačke sa približnim<br />

koordinatama (0.7071, 0.6714) i (−0.7071, 1.5374), koje se na prvom crtežu<br />

nalaze ravno ispod tačaka (1, 2, 2) i (2, 1, 3), tj. projektovana tačka i njena<br />

pojekcija se poklapaju. Zbog toga je na drugom crtežu <strong>3D</strong> koordinatni sistem<br />

pomjeren (rotacijom) iz položaja koji ima na prvom crtežu, te se tako<br />

jasno vide original i njegova transformacija.<br />

2<br />

(2,1,3)<br />

z<br />

2<br />

z<br />

1<br />

(1,2,2)<br />

(2,1,3)<br />

•<br />

1<br />

-2<br />

-1<br />

1 2<br />

-2<br />

-1<br />

(1,2,2)<br />

1 2<br />

x<br />

-1<br />

y<br />

x<br />

-1<br />

y<br />

Slika 1.8<br />

Ovdje se može uočiti da su vektori koji ilustruju projekciju paralelni, pa<br />

se stoga svaka tačka duži čije su krajnje tačke (1, 2, 2) i (2, 1, 3) projektuje<br />

u neku tačku duži u ravni papira, sa krajnjim tačkama (0.7071, 0.6714) i<br />

(−0.7071, 1.5374).<br />

Na osnovu svega izloženog može se zaključiti da su uglovi horizontalne i<br />

vertikalne rotacije <strong>3D</strong> sistema neophodni za svako <strong>3D</strong> crtanje. Zbog toga, i<br />

ukoliko ih ne precizirate, oni već imaju svoju unaprijed definisanu vrijednost<br />

(po default-u) unutar pst-3dplot paketa. Stoga, kako svaka makro naredba<br />

pst-3dplot paketa zahtijeva vrijednosti ovih uglova, svaku njihovu promjenu<br />

je najbolje uvoditi pomoću \psset naredbe, jer tako svaka promjena postaje


1.3 Kako pokrenuti <strong>3D</strong> crtanje? 7<br />

globalna unutar okruženja za koje je predvid¯ena. Ova veoma važna činjenica<br />

će ovdje možda biti pomalo nejasna, ali će se zato u nastavku, kada za to<br />

dod¯e pravo vrijeme, na nju skrenuti pažnja čitaoca . . .<br />

1.3 Kako pokrenuti <strong>3D</strong> crtanje?<br />

Sve počinje aktivacijom paketa pst-3dplot u preambuli dokumenta, naredbom:<br />

⋆ \usepackage{pst-3dplot} ⋆<br />

Prvi korak svake grafičke ilustracije jeste postavljenje referentnog okvira,<br />

odnosno crtanje koordinatnog sistema u odnosu na koji se objekti pozicioniraju.<br />

Zbog toga će sljedeće poglavlje biti u potpunosti posvećeno koordinatnom<br />

sistemu.<br />

pst-3dplot je pstricks paket za crtanje <strong>3D</strong> grafičkih objekata, te se<br />

stoga svako crtanje pokreće unutar pspicture okruženja, koje se definiše na<br />

već poznati način. Naravno, sve pstricks opcije su moguće, kao i kombinovanje<br />

dvodimenzionalnog i trodimenzionalnog crtanja.


Poglavlje 2<br />

Koordinatni sistem<br />

2.1 Crtanje koordinatnog sistema<br />

Naredba za crtanje koordinatnog sistema je<br />

⋆ \pstThreeDCoor[Opcije] ⋆<br />

Upotreba ove neredbe, uz izostavljanje bilo kakvih opcija, daje sljedeći<br />

rezultat:<br />

z<br />

\begin{pspicture}(-3.3,-2.2)(2,4.3)<br />

\pstThreeDCoor<br />

\end{pspicture}<br />

x<br />

y<br />

Jedina specijalna opcija jedrawing=true|false, koja omogućava crtanje<br />

koordinatnih osa. Default vrijednost ove opcije je true. Prilikom gotovo<br />

svakog <strong>3D</strong> crtanja, za inicijalizaciju <strong>3D</strong> koordinatnog sistema potrebno je<br />

koristiti ovu naredbu. Ako je pak ona postavljena na false, onda su sve<br />

opcije za podešavanje izgleda koordinatnih osa takod¯er onemogućene.<br />

U tablici 2.1 prikazani su svi novi parametri za podešavanje izgleda <strong>3D</strong><br />

koordinatnog sistema, kao i unaprijed definisane vrijednosti tih parametara


2.1 Crtanje koordinatnog sistema 9<br />

Tablica 2.1: Parametri za <strong>3D</strong> koordinatni sistem<br />

Naziv parametra Moguće vrijednosti Default<br />

Alpha 45<br />

Beta 35<br />

xMin -1<br />

xMax 4<br />

yMin -1<br />

yMax 4<br />

zMin -1<br />

zMax 4<br />

nameX $x$<br />

spotX 180<br />

nameY $y$<br />

spotY 0<br />

nameZ $z$<br />

spotZ 90<br />

IIIDticks false|true false<br />

Dx 1<br />

Dy 1<br />

Dz 1<br />

IIIDxTicksPlane xy|xz|yz xy<br />

IIIDyTicksPlane xy|xz|yz yz<br />

IIIDzTicksPlane xy|xz|yz yz<br />

IIIDticksize 0.1<br />

IIIDxticksep -0.4<br />

IIIDyticksep -0.2<br />

IIIDzticksep 0.2<br />

RotX 0<br />

RotY 0<br />

RotZ 0<br />

RotSequence xyz|xzy|yxz|yzx|zxy|zyx xyz<br />

koje L A TEX postavlja u slučaju izostanka njihovog preciziranja (default vrijednosti).<br />

Ne postoje ograničenja za uglove ili za minimalne i maksimalne vrijednosti<br />

na koordinatnim osama. Sve pstricks opcije su moguće, takod¯er.<br />

Promjene minimalne i maksimalne vrijednosti na odred¯enoj koordinatnoj<br />

osi vrše se parametrima xMin, xMax, yMin, yMax, zMin, zMax. Takod¯er<br />

je moguće promijeniti oznake koordinatnih osa (parametri nameX, nameY,


2.1 Crtanje koordinatnog sistema 10<br />

nameZ). Pozicioniranje oznake u odnosu na samu koordinatnu osu vrši se<br />

parametrima spotX, spotY i spotZ. Odabirom odgovarajućih vrijednosti<br />

(uglova) za ove parametre se zapravo vrši izbor uglova koje želimo da zaklapaju<br />

koordinatna osa i oznaka, te se na taj način vrši njeno pozicioniranje.<br />

Sve pomenute opcije ilustruju primjeri koji slijede, kao i način na koji se vrši<br />

promjena debljine i boje koordinatnih osa pomoću pstricks parametara.<br />

a<br />

c<br />

b<br />

\begin{pspicture}(-2.3,-2.3)(2.5,2.5)<br />

\pstThreeDCoor[<br />

linewidth=1pt,linecolor=WildStrawberry,<br />

xMin=-2,xMax=2,<br />

yMin=-2,yMax=2,<br />

zMin=-2,zMax=2,<br />

nameX=$a$,nameY=$b$,nameZ=$c$]<br />

\end{pspicture}<br />

a<br />

c<br />

b<br />

\begin{pspicture}(-2.2,-2)(3,3)<br />

\pstThreeDCoor[<br />

linewidth=1.2pt,linecolor=DarkViolet,<br />

xMin=-2,xMax=3,<br />

yMin=-2,yMax=3,<br />

zMin=-2,zMax=3,<br />

nameX=$a$,spotX=330,<br />

nameY=$b$,spotY=80,<br />

nameZ=$c$,spotZ=-160]<br />

\end{pspicture}<br />

v<br />

a<br />

t<br />

\begin{pspicture}(-2.25,-1.7)(3,3.4)<br />

\pstThreeDCoor[<br />

linewidth=1pt,linecolor=MidnightBlue,<br />

xMin=0,xMax=3,<br />

yMin=0,yMax=3,<br />

zMin=0,zMax=3,<br />

nameX=$v$,spotX=90,<br />

nameY=$t$,spotY=90,<br />

nameZ=$a$,spotZ=90]<br />

\end{pspicture}<br />

Preostali parametri iz tablice 2.1 bit će pojašljeni kroz naredne odjeljke.


2.1 Crtanje koordinatnog sistema 11<br />

2.1.1 Parametri Alpha i Beta<br />

U odjeljku 1.1 definisani su uglovi rotacije Dekartovog <strong>3D</strong> koordinatnog sistema,<br />

ugao horizontalne i ugao vertikalne rotacije. Njihov izuzetni značaj<br />

za <strong>3D</strong> crtanje u L A TEX-u pomoću pst-3dplot paketa opravdan je u odjeljku<br />

1.2. Naime, pomoću tih uglova se <strong>3D</strong> koordinate prevode u dvodimenzionalne<br />

koje L A TEX ctra na papiru. Zbog toga je jasno da njihovo preciziranje mora<br />

biti sastavni i obavezni dio opcionih argumenata \pstThreeDCoor naredbe.<br />

Parametri Alpha i Beta predstavljaju upravo te uglove, gdje je Alpha ugao<br />

horizontalne, a Beta ugao vertikalne rotacije.<br />

Sljedeći primjeri pokazuju kako se izmjenom uglova Alpha i Beta vrši<br />

izmjena pogleda na isti koordinatni sistem.<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3.3,-1.5)(1,3)<br />

\pstThreeDCoor[<br />

linewidth=1.2pt,linecolor=DarkViolet,<br />

xMin=-1,xMax=2.5,<br />

yMin=-1,yMax=2.5,<br />

zMin=-1,zMax=2.5,<br />

Alpha=0,Beta=0]<br />

\end{pspicture}<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2.4,-1.5)(1,3)<br />

\pstThreeDCoor[<br />

linewidth=1.2pt,linecolor=violet,<br />

xMin=-1,xMax=2.5,<br />

yMin=-1,yMax=2.5,<br />

zMin=-1,zMax=2.5,<br />

Alpha=40,Beta=0]<br />

\end{pspicture}<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2.4,-1.5)(1,3)<br />

\pstThreeDCoor[<br />

linewidth=1.2pt,linecolor=MidnightBlue,<br />

xMin=-1,xMax=2.5,<br />

yMin=-1,yMax=2.5,<br />

zMin=-1,zMax=2.5,<br />

Alpha=45,Beta=30] % default vrijednosti<br />

\end{pspicture}


2.1 Crtanje koordinatnog sistema 12<br />

y x<br />

z<br />

\begin{pspicture}(-3,-1.5)(1,3)<br />

\pstThreeDCoor[<br />

linewidth=1.2pt,linecolor=MidnightBlue,<br />

xMin=-1,xMax=2.5,<br />

yMin=-1,yMax=2.5,<br />

zMin=-1,zMax=2.5,<br />

Alpha=-60,Beta=0]<br />

\end{pspicture}<br />

y<br />

x<br />

z<br />

\begin{pspicture}(-3,-1.5)(1,3)<br />

\pstThreeDCoor[<br />

linewidth=1.2pt,linecolor=violet,<br />

xMin=-1,xMax=2.5,<br />

yMin=-1,yMax=2.5,<br />

zMin=-1,zMax=2.5,<br />

Alpha=-60,Beta=30]<br />

\end{pspicture}<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2.8,-1.5)(1,3)<br />

\pstThreeDCoor[<br />

linewidth=1.2pt,linecolor=DarkBlue,<br />

xMin=-1,xMax=2.5,<br />

yMin=-1,yMax=2.5,<br />

zMin=-1,zMax=2.5,<br />

Alpha=30,Beta=-60]<br />

\end{pspicture}<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-1.6,-1.5)(1,3)<br />

\pstThreeDCoor[<br />

linewidth=1.2pt,linecolor=WildStrawberry,<br />

xMin=-1,xMax=2.5,<br />

yMin=-1,yMax=2.5,<br />

zMin=-1,zMax=2.5,<br />

Alpha=90,Beta=25]<br />

\end{pspicture}


2.1 Crtanje koordinatnog sistema 13<br />

2.1.2 Parametri za numeraciju koordinatnih osa<br />

Numeracija koordinatnih osa postiže se parametrom IIIDticks. Moguće<br />

vrijednosti za ovaj parametar su false|true, a default vrijednost je false.<br />

Izborom opcije true za vrijednost ovog parametra, koordinatne ose dobijaju<br />

numeraciju i podione oznake. Med¯utim, preciziranje vrijednosti ovog<br />

parametra nije neophodno. Naime, samo navod¯enje ovog parametra u listi<br />

opcionih argumenata naredbe\pstThreeDCoor L A TEX će interpretirati kao izbor<br />

opcije true za njegovu vrijednost. Tako se izostavljanje ovog parametra<br />

interpretira kao i opcija IIIDticks=false. Naredni primjer ilustruje upravo<br />

rečeno.<br />

z<br />

-1.0<br />

3.0<br />

2.0<br />

-1.0<br />

1.0<br />

\begin{pspicture}(-3.3,-2.3)(2,4.5)<br />

\pstThreeDCoor[<br />

IIIDticks,<br />

linewidth=1pt,<br />

linecolor=DarkViolet!80]<br />

\end{pspicture}<br />

x<br />

1.0 2.0 3.0<br />

-1.0<br />

y<br />

1.0 2.0 3.0<br />

Podioni razmaci na koordinatnim osama, kao i pozicija numeracije i njena<br />

veličina u prethodnom primjeru imaju default vrijednosti. Ipak, svaka od<br />

ovih karakterizacija <strong>3D</strong> sistema može biti promjenjena do željenog oblika.<br />

Veličina fonta kojim se vrši numeracija na osama može se promijeniti<br />

predefinisanjem makro naredbe na sljedeći način:<br />

\def\psxyzlabel#1{\bgroup\scriptsize\textsf{#1}\egroup}<br />

Ovom definicijom se vrši izbor \textsf fonta veličine \scriptsize za numeraciju<br />

na osama. U sljedećem primjeru je odabran \textrm font veličine<br />

\scriptsize.


2.1 Crtanje koordinatnog sistema 14<br />

z<br />

x<br />

1.0 2.0 3.0<br />

-2.0<br />

-1.0<br />

3.0<br />

2.0<br />

1.0<br />

-2.0 -1.0<br />

-1.0<br />

-2.0<br />

1.0 2.0 3.0<br />

y<br />

\def\psxyzlabel#1{\bgroup<br />

\scriptsize\textrm{#1}\egroup}<br />

\begin{pspicture}(-3.3,-2.3)(2,4.2)<br />

\pstThreeDCoor[<br />

IIIDticks,<br />

linewidth=1pt,<br />

linecolor=DarkViolet!80,<br />

xMin=-2,yMin=-2,zMin=-2]<br />

\end{pspicture}<br />

Podioni razmaci na koordinatnim osama<br />

Izborom odred¯enih konkretnih vrijednosti (pozitivnih brojeva) za parametre<br />

Dx, Dy i Dz vrši se odabir podionih razmaka na koordinatnim osama x, y i z<br />

respektivno, te je na taj način moguće postići željenu podjelu.<br />

z<br />

x<br />

2.0 4.0 6.0<br />

-1.0<br />

-0.5<br />

0.75<br />

0.5<br />

-2.0<br />

0.25<br />

-4.0<br />

0.5 1.0 1.5<br />

-0.25<br />

-0.5<br />

y<br />

\begin{pspicture}(-3.3,-2.3)(2,4.2)<br />

\pstThreeDCoor[<br />

IIIDticks,<br />

linewidth=1pt,<br />

linecolor=RedOrange!80,<br />

xMin=-2,<br />

yMin=-2,<br />

zMin=-2,<br />

Dx=2,Dy=0.5,Dz=0.25]<br />

\end{pspicture}<br />

Pozicija numeracije koordinatnih osa<br />

Postoje dva parametra za pozicioniranje numeracija koordinatnih osa. Parametri<br />

IIIDxTicksPlane, IIIDyTicksPlane i IIIDzTicksPlane postavljaju<br />

brojne vrijednosti na odgovarajućim osama x, y i z u ravni xy, yz ili xz,


1.5<br />

1.0<br />

0.5<br />

-1.0<br />

2.1 Crtanje koordinatnog sistema 15<br />

što omogućava optimalan pogled na <strong>3D</strong> sistem. Takod¯er, moguće je precizirati<br />

udaljenost numeracije od same koordinatne ose, a parametri koji to<br />

omogućavaju su IIIDxticksep, IIIDyticksep i IIIDzticksep, gdje se prvi<br />

parametar odnosi na x, drugi na y, a treći na z osu, što je naglašeno i u<br />

nazivu parametra. Ilustracija funkcije navedenih parametara prikazana je u<br />

narednim primjerima.<br />

z<br />

x<br />

3.0<br />

-2.0<br />

1.0<br />

2.0<br />

-1.0<br />

3.0<br />

2.0<br />

-2.0<br />

1.0 -1.0<br />

1.0 2.0 3.0<br />

-1.0<br />

-2.0<br />

y<br />

\begin{pspicture}(-3.3,-2.3)(2,4.2)<br />

\pstThreeDCoor[<br />

linecolor=black,<br />

linewidth=0.9pt,<br />

IIIDticks,<br />

IIIDxTicksPlane=yz,<br />

xMin=-2,yMin=-2,zMin=-2]<br />

\end{pspicture}<br />

-0.5<br />

1.0 2.0 3.0<br />

y<br />

2.0<br />

4.0<br />

6.0<br />

z<br />

-2.0<br />

x<br />

\begin{pspicture}(-3.3,-2.3)(2,4.2)<br />

\pstThreeDCoor[<br />

linecolor=MidnightBlue,<br />

linewidth=1pt,IIIDticks,<br />

IIIDxTicksPlane=zx,<br />

IIIDxticksep=-0.2,<br />

IIIDyTicksPlane=yz,<br />

IIIDyticksep=-0.1,<br />

IIIDzTicksPlane=yz,<br />

IIIDzticksep=-0.2,<br />

Dx=0.5,Dy=1,Dz=2,<br />

Alpha=-135,Beta=-30]<br />

\end{pspicture}<br />

Sljedeći primjer prikazuje pogrešnu poziciju brojnih vrijednosti kojima<br />

se vrši numeracija koordinatnih osa. Naime, odabirom uglova Alpha i Beta<br />

koordinatne ose u prostoru zauzimaju pozicije tako da dolazi do preklapanja<br />

brojnih vrijednosti na osama. Takvo preklapanje se izbjegava upravo upotrebom<br />

opcija koje premještaju brojne vrijednosti u ravni koje su više pogodne.


-1.0<br />

0.5<br />

1.0<br />

1.5<br />

2.1 Crtanje koordinatnog sistema 16<br />

x<br />

0.5 1.0 1.5<br />

z<br />

-0.5<br />

y<br />

1.0 2.0 3.0<br />

2.0<br />

4.0<br />

6.0<br />

-2.0<br />

-1.0<br />

\begin{pspicture}(-3.8,-2.1)(1,3.3)<br />

\pstThreeDCoor[<br />

linecolor=NiceRed,<br />

linewidth=1pt,<br />

IIIDticks,<br />

Dx=0.5,Dy=1,Dz=2,<br />

Alpha=-60,Beta=60]<br />

\end{pspicture}<br />

Moguće rješenje ovakvog problema je:<br />

y<br />

x<br />

1.0 2.0 3.0<br />

2.0<br />

4.0<br />

z<br />

6.0<br />

-2.0<br />

-0.5<br />

\begin{pspicture}(-3.8,-2.1)(1,3.3)<br />

\pstThreeDCoor[<br />

linecolor=NiceRed,<br />

linewidth=1pt,<br />

IIIDticks,<br />

IIIDxTicksPlane=zx,<br />

IIIDxticksep=-0.2,<br />

IIIDyTicksPlane=yz,<br />

IIIDyticksep=0.1,<br />

IIIDzTicksPlane=yz,<br />

IIIDzticksep=-0.2,<br />

Dx=0.5,Dy=1,Dz=2,<br />

Alpha=-60,Beta=60]<br />

\end{pspicture}<br />

U narednom primjeru nacrtane su dvije elipse u koordinatnom sistemu sa<br />

numerisanim osama. Elipse su nacrtane pomoću naredbi pst-3dplot paketa<br />

o kojima će u daljem izlaganju biti više riječi.<br />

Ono što je važno uočiti u ovom primjeru jeste sljedeće: Uglovi rotacije<br />

Alpha i Beta postavljeni su sa \psset naredbom i tako učinjeni globalnim za<br />

sve naredbe koje figurišu unutar ovog primjera. Razlog za to je taj što svaka<br />

pst-3dplot naredba zahtijeva vrijednosti ovih uglova, te u slučaju nepreciziranja<br />

istih koristi standardne (default) vrijednosti. Zato, ukoliko bi uglovi<br />

Alpha i Beta bili postavljeni kao opcioni parametri unutar \pstThreeDCoor<br />

naredbe, elipse će biti crtane za standardne vrijednosti uglova Alpha i Beta,<br />

tj. u standardnom <strong>3D</strong> koordinatnom sistemu.<br />

Sa namjerom što boljeg pojašnjenja navedena su oba slučaja:


•<br />

•<br />

•<br />

•<br />

2.1 Crtanje koordinatnog sistema 17<br />

x<br />

1.0 2.0 3.0<br />

z<br />

3.0<br />

2.0<br />

1.0<br />

-1.0<br />

-1.0<br />

-1.0<br />

1.0 2.0 3.0<br />

y<br />

\begin{pspicture}(-3.85,-2)(2,4)<br />

\pstThreeDCoor[Alpha=30,Beta=30,IIIDticks,<br />

linecolor=black]<br />

\psset{linecolor=mycolor,<br />

linewidth=1.7pt}<br />

\pstThreeDEllipse<br />

(1,0.5,0.5)(-0.5,1,0.5)(1,-0.5,-1)<br />

\pstThreeDDot[drawCoor=true]<br />

(1,0.5,0.5) % centar<br />

\psset{beginAngle=0,endAngle=270,<br />

linecolor=mycolor1}<br />

\pstThreeDEllipse<br />

(2,1,2.5)(-0.5,0.5,0.5)(0.5,0.5,-1)<br />

\pstThreeDDot[drawCoor=true]<br />

(2,1,2.5) % centar<br />

\end{pspicture}<br />

. . . a trebalo bi da izgleda ovako:<br />

x<br />

1.0 2.0 3.0<br />

z<br />

3.0<br />

2.0<br />

1.0<br />

-1.0<br />

-1.0<br />

-1.0<br />

1.0 2.0 3.0<br />

y<br />

\begin{pspicture}(-3.85,-2)(2,4)<br />

\psset{Alpha=30,Beta=30}<br />

\pstThreeDCoor[linecolor=black,IIIDticks]<br />

\psset{linecolor=mycolor,<br />

linewidth=1.7pt}<br />

\pstThreeDEllipse<br />

(1,0.5,0.5)(-0.5,1,0.5)(1,-0.5,-1)<br />

\pstThreeDDot[drawCoor=true]<br />

(1,0.5,0.5) % centar<br />

\psset{beginAngle=0,endAngle=270,<br />

linecolor=mycolor1}<br />

\pstThreeDEllipse<br />

(2,1,2.5)(-0.5,0.5,0.5)(0.5,0.5,-1)<br />

\pstThreeDDot[drawCoor=true]<br />

(2,1,2.5) % centar<br />

\end{pspicture}


2.1 Crtanje koordinatnog sistema 18<br />

2.1.3 Parametri za rotaciju<br />

Koordinatni sistem može biti rotiran neovisno o odabranim vrijednostima<br />

uglova Alpha i Beta. Tako je moguće postaviti koordinatne ose u bilo kojem<br />

pravcu i bilo kojem redoslijedu.<br />

Postoje tri parametra RotX, RotY, RotZ kao i dodatni RotSequence.<br />

Mouguće vrijednosti parametra RotSequence su bilo koje kombinacije slova<br />

xyz. Parametrima RotX, RotY i RotZ se vrši rotacija oko koordinatnih osa<br />

x, y i z respektivno. Ako se u nekoj makro naredbi upotrebljavaju sva tri,<br />

onda je opcijom RotSequence moguće precizirati redoslijed vršenja rotacija.<br />

Tako npr. opcija RotSequence=zxy odred¯uje redoslijed: RotZ, RotX, RotY.<br />

U sljedećem primjeru pomoćupstricks makro naredbe\multido prikazan<br />

je niz od 18 rotacija koordinatnog sistema oko z ose za po 10 o .<br />

z<br />

x<br />

x<br />

y<br />

x<br />

y<br />

x<br />

y<br />

x<br />

y<br />

x<br />

y<br />

x<br />

y<br />

x<br />

y<br />

x<br />

y<br />

x<br />

y<br />

x<br />

x<br />

y<br />

y<br />

x y<br />

x y<br />

x y<br />

x y<br />

x y<br />

x y<br />

y<br />

\begin{pspicture}(-6,-3)(6,3.5)<br />

\multido{\iA=0+10}{18}{<br />

\pstThreeDCoor[linewidth=1pt,linecolor=NiceRed,<br />

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

}<br />

\end{pspicture}<br />

Kroz naredne primjere ilustrovane su funkcije parametara RotX, RotY,<br />

RotZ, RotSequence na trodimenzionalnom objektu (kvadar).


2.1 Crtanje koordinatnog sistema 19<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2,-1.8)(2,2.5)<br />

\pstThreeDCoor[linecolor=black,<br />

xMin=0,yMin=0,zMin=0,xMax=2,yMax=2,zMax=2]<br />

\pstThreeDBox(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotX=90,<br />

linecolor=WildStrawberry]%<br />

(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotX=90,RotY=90,<br />

linecolor=NiceRed!80]%<br />

(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotX=90,RotY=90,RotZ=90,<br />

linecolor=CarnationPink!80]%<br />

(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\end{pspicture}<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-4.5,-2)(2,2.6)<br />

\pstThreeDCoor[xMin=0,xMax=2.5,yMin=0,yMax=2.5,zMin=0,zMax=2.5]<br />

\pstThreeDBox(0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotX=90,RotY=90,RotZ=90,<br />

linecolor=NiceRed](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotSequence=xzy,RotX=90,RotY=90,RotZ=90,<br />

linecolor=viol_red](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotSequence=zyx,RotX=90,RotY=90,RotZ=90,<br />

linecolor=cyan](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotSequence=zxy,RotX=90,RotY=90,RotZ=90,<br />

linecolor=blue](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotSequence=yxz,RotX=90,RotY=90,RotZ=90,<br />

linecolor=magenta](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[RotSequence=yzx,RotX=90,RotY=90,RotZ=90,<br />

linecolor=violet](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDBox[fillstyle=g<strong>rad</strong>ient](0,0,0)(.5,0,0)(0,1,0)(0,0,1.5)<br />

\pstThreeDCoor[xMin=0,xMax=2.5,yMin=0,yMax=2.5,zMin=0,zMax=2.5]<br />

\end{pspicture}


2.2 <strong>3D</strong> koordinatna mreža 20<br />

2.2 <strong>3D</strong> koordinatna mreža<br />

Opšte-poznata je činjenica da Descartes-ov trodimenzionalni koordinatni sistem<br />

predstavlja ortogonalni presjek tri ravni u prostoru (horizontalna, frontalna<br />

i profilna ravan). Zbog toga se koordinatna mreža <strong>3D</strong> sistema sastoji<br />

iz koordinatnih mreža ravnina koje odred¯uju taj sistem.<br />

Naredba za crtanje koordinatne mreže u nekoj od ravnina <strong>3D</strong> sistema ima<br />

sintaksu:<br />

⋆ \pstThreeDPlaneGrid[Opcije](xMin,yMin)(xMax,yMax) ⋆<br />

Parametri navedeni unutar ( ) su obavezni i odred¯uju okvir koordinatne<br />

mreže, te je njihova funkcija ista kao i funkcija odgovarajućih parametara<br />

pst-plot paketa za naredbu \psgrid. Naime, na taj način se definišu koordinate<br />

dva suprotna tjemena četverougla u odred¯enoj ravni, koji predstavlja<br />

okvir za koordinatnu mrežu te ravni. Opcioni argumenti mijenjaju izgled koordinatne<br />

mreže, a parametri koji to omogućavaju su planeGrid, subticks<br />

i planeGridOffset.<br />

U narednim primjerima su odred¯ene opcije uvod¯ene pomoću\psset naredbe<br />

da bi učinjene globalnim za sve naredbe unutar pspicture okruženja.<br />

planeGrid<br />

Parametrom planeGrid se vrši izbor ravni u koju se želi umetnuti koordinatna<br />

mreža. Njegove moguće vrijednosti su: xy, xz iyz, a default vrijednost<br />

xy.<br />

U primjeru koji slijedi nacrtana je koordinatna mreža za sve tri ravni<br />

<strong>3D</strong> sistema, te promijenjena standardna debljina i boja linija kojima će se<br />

koordinatna mreža crtati.<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-3.3,-3)(2,4)<br />

\psset{linewidth=0.2pt,<br />

linecolor=lightgray}<br />

\pstThreeDCoor<br />

[xMin=0,yMin=0,zMin=0,<br />

linecolor=violet,<br />

linewidth=2pt]<br />

\pstThreeDPlaneGrid(0,0)(4,4)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=xz](0,0)(4,4)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=yz](0,0)(4,4)<br />

\end{pspicture}


2.2 <strong>3D</strong> koordinatna mreža 21<br />

subticks<br />

Iz prethodnog primjera smo vidjeli da ukoliko želimo da se koordinatna mreža<br />

sastoji iz odred¯enog broja linija, onda se taj broj mora precizirati. Parametar<br />

subticks ima sličnu funkciju. On je takod¯er definisan i u pst-plot<br />

paketu, ali ovdje uz komandu \pstThreeDPlaneGrid ima drugačiju funkciju.<br />

Naime, njime se odred¯uju podjele koordinatne mreže koje polaze od obje<br />

koordinatne ose ravni u kojoj se koordinatna mreža crta.<br />

U sljedećem primjeru je prikazana podjela koordinatne mreže na 6 dijelova<br />

od obje ose opcijom subticks=6.<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3.3,-3)(2,4)<br />

\psset{linewidth=0.2pt,<br />

linecolor=lightgray,<br />

subticks=6}<br />

\pstThreeDCoor<br />

[xMin=0,yMin=0,zMin=0,<br />

linecolor=violet,<br />

linewidth=2pt]<br />

\pstThreeDPlaneGrid(0,0)(4,4)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=xz](0,0)(4,4)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=yz](0,0)(4,4)<br />

\end{pspicture}<br />

Moguće je i determinisati podjelu koordinatne mreže različitim podjelama<br />

koje polaze od koordinatnih osa. Parametri koji to omogućavaju su<br />

xsubticks i ysubticks.<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3.3,-3)(2,4)<br />

\psset{linewidth=0.2pt,<br />

linecolor=lightgray,<br />

xsubticks=6,<br />

ysubticks=2}<br />

\pstThreeDCoor<br />

[xMin=0,yMin=0,zMin=0,<br />

linecolor=violet,<br />

linewidth=2pt]<br />

\pstThreeDPlaneGrid(0,0)(4,4)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=xz](0,0)(4,4)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=yz](0,0)(4,4)<br />

\end{pspicture}


2.2 <strong>3D</strong> koordinatna mreža 22<br />

planeGridOffset<br />

Koordinatna mreža može biti udaljena od koorinatnih osa za proizvoljnu<br />

dužinu. Parametar kojim se ta dužina precizira jeplaneGridOffset. Default<br />

vrijednost ovog parametra je 0.<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3.3,-3)(2,4)<br />

\psset{linewidth=0.2pt,<br />

linecolor=lightgray,<br />

subticks=6}<br />

\pstThreeDCoor<br />

[xMin=0,yMin=0,zMin=0,<br />

linecolor=violet,<br />

linewidth=2pt]<br />

\pstThreeDPlaneGrid(0,0)(4,4)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=xz,<br />

planeGridOffset=4](0,0)(4,4)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=yz](0,0)(4,4)<br />

\end{pspicture}<br />

y<br />

x<br />

z<br />

\begin{pspicture}(-3.3,-4)(2,4)<br />

\psset{linewidth=0.4pt,<br />

linecolor=thistle!70,<br />

Alpha=-65,Beta=-45,<br />

subticks=5,unit=1.25}<br />

\pstThreeDPlaneGrid<br />

[planeGridOffset=-2,<br />

planeGrid=xy](-2,-2)(2,2)<br />

\pstThreeDPlaneGrid<br />

[planeGrid=xz,<br />

planeGridOffset=2](-2,-2)(2,2)<br />

\pstThreeDPlaneGrid<br />

[planeGridOffset=-2,<br />

planeGrid=yz,](-2,-2)(2,2)<br />

\pstThreeDCoor<br />

[xMin=-2,yMin=-2,zMin=-2,<br />

xMax=2,yMax=2,zMax=2,<br />

linecolor=violet,<br />

linewidth=2pt]<br />

\end{pspicture}<br />

U narednim primjerima nacrtane su funkcije<br />

f(x,y)=sinx·y i f(x,y)= x2 + 2y 2 − 6x − 4y + 3<br />

10


2.2 <strong>3D</strong> koordinatna mreža 23<br />

pomoću naredbe \psplotThreeD, o kojoj će više riječi biti kasnije, a pomoću<br />

<strong>3D</strong> koordinatne mreže ograničeni dijelovi prostora unutar kojih su funkcije<br />

smještene.<br />

z<br />

x<br />

y<br />

\scalebox{1.2}[1.6]{<br />

\begin{pspicture}(-5.45,-3)(5.45,3)<br />

\psset{nameX=\scriptsize{$x$},nameY=\scriptsize{$y$},<br />

nameZ=\scriptsize{$z$}}<br />

\psset{Alpha=25,Beta=20,<br />

linecolor=thistle,linewidth=0.5pt,<br />

xsubticks=10,ysubticks=3,unit=0.8}<br />

\pstThreeDCoor[xMin=-5.5,yMin=-5.5,zMin=-1,<br />

xMax=5.5,yMax=5.5,zMax=1,<br />

linecolor=black,linewidth=.7pt]<br />

\pstThreeDPlaneGrid[planeGridOffset=-1,ysubticks=10](-5,-5)(5,5)<br />

\pstThreeDPlaneGrid[planeGrid=xz,planeGridOffset=5](-5,-1)(5,1)<br />

\pstThreeDPlaneGrid[planeGrid=xz,planeGridOffset=-5](-5,-1)(5,1)<br />

\pstThreeDPlaneGrid[planeGrid=yz,planeGridOffset=-5](-5,-1)(5,1)<br />

\pstThreeDPlaneGrid[planeGrid=yz,planeGridOffset=5](-5,-1)(5,1)<br />

\psplotThreeD[plotstyle=curve,drawStyle=xyLines,<br />

yPlotpoints=70,xPlotpoints=70,<br />

linewidth=0.2pt,linecolor=black](-3.5,3.5)(-3.5,3.5)<br />

{x y mul 57 mul sin}<br />

\psset{subticks=10}<br />

\pstThreeDPlaneGrid[planeGridOffset=1](-5,-5)(5,5)<br />

\end{pspicture}}


2.2 <strong>3D</strong> koordinatna mreža 24<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-9,-2)(4,7.5)<br />

\psset{Beta=10,Alpha=30,subticks=7}<br />

\pstThreeDCoor[xMin=0,yMin=0,zMin=0,xMax=7,yMax=7,zMax=7,<br />

linewidth=1.5pt,linecolor=black]<br />

\psset{linewidth=0.1pt,linecolor=gray}<br />

\pstThreeDPlaneGrid(0,0)(7,7)<br />

\pstThreeDPlaneGrid[planeGrid=xz](0,0)(7,7)<br />

\pstThreeDPlaneGrid[planeGrid=yz](0,0)(7,7)<br />

\pscustom[linewidth=0.1pt,fillstyle=g<strong>rad</strong>ient,g<strong>rad</strong>begin=MidnightBlue,<br />

g<strong>rad</strong>end=lightgray,g<strong>rad</strong>midpoint=0.6,plotstyle=curve]{<br />

\psset{xPlotpoints=200,yPlotpoints=1}<br />

\psplotThreeD(0,7)(0,0)<br />

{x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div}<br />

\psset{xPlotpoints=1,yPlotpoints=200,drawStyle=yLines}<br />

\psplotThreeD(7,7)(0,7)<br />

{x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div}<br />

\psset{xPlotpoints=200,yPlotpoints=1,drawStyle=xLines}<br />

\psplotThreeD(7,0)(7,7)<br />

{x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div}<br />

\psset{xPlotpoints=1,yPlotpoints=200,drawStyle=yLines}<br />

\psplotThreeD(0,0)(7,0)<br />

{x dup mul y dup mul 2 mul add x 6 mul sub y 4 mul sub 3 add 10 div}}<br />

\pstThreeDPlaneGrid[planeGrid=xz,planeGridOffset=7](0,0)(7,7)<br />

\pstThreeDPlaneGrid[planeGrid=yz,planeGridOffset=7](0,0)(7,7)<br />

\end{pspicture}


•<br />

2.3 Put naredbe 25<br />

2.3 Put naredbe<br />

U L A TEX-u, općenito, put naredbe služe za pozicioniranje teksta ili bilo kakvih<br />

objekata na crtežu, kao i za označavanje objekata. Kod pst-plot paketa tu<br />

funkciju ima \rput naredba. Ona omogućava i pozicioniranje objekta sa<br />

raznih strana referentne tačke (parametri: lt|lB|lb|t|c|B|b|rt|rB|rb).<br />

Kod pst-3dplot paketa postoje dvije put naredbe, \pstThreeDPut i<br />

\pstPlanePut. Default parametar pozicioniranja prve je c (referentna tačka<br />

je centrirana u odnosu na objekat), a druge naredbe lB (referentna tačka je<br />

lijevo po osnovnoj liniji od objekta).<br />

2.3.1 \pstThreeDPut<br />

Sintaksa ove naredbe slična je \rput naredbi i glasi:<br />

⋆ \pstThreeDPut[opcije](x,y,z){objekat} ⋆<br />

Unutar [ ] zag<strong>rad</strong>a moguće je specificirati odred¯ene opcije za objekat, a<br />

(x,y,z) su koordinate referentne tačke objekta.<br />

•<br />

<strong>3D</strong> tačka<br />

x<br />

y<br />

z<br />

\begin{pspicture}(-2,-1.3)(1,2.4)<br />

\psset{Alpha=-60,Beta=30}<br />

\pstThreeDCoor[<br />

linecolor=MidnightBlue,linewidth=.8pt,<br />

xMin=-1,yMin=-1,zMin=-1,<br />

xMax=2,yMax=2,zMax=2]<br />

\pstThreeDPut(1,0.5,1.25){\emph{<strong>3D</strong> ta\v cka}}<br />

\pstThreeDDot[drawCoor=true](1,0.5,1.25)<br />

\end{pspicture}<br />

Ako se naredbom \pstThreeDPut želi postaviti neki <strong>3D</strong> objekat, onda se<br />

referentna tačka ne mora vidjeti kao centar tog odjekta, zbog perspektive iz<br />

koje se koordinatni sistem posmatra. Med¯utim, to nije slučaj sa prethodnim<br />

primjerom jer je tekst dvodimenzionalan objekat.<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2.6,-1.6)(2,2.8)<br />

\pstThreeDCoor[<br />

linecolor=black,linewidth=.7pt,<br />

xMin=-1,yMin=-1,zMin=-1,<br />

xMax=2.5,yMax=2.5,zMax=2.5]<br />

\pstThreeDBox[linecolor=thistle]%<br />

(-1,-1,-1)(0,1,0)(0,0,.5)(1.5,0,0)<br />

\pstThreeDPut[linecolor=MidnightBlue](1,-1,1.25)<br />

{\pstThreeDBox(-1,-1,-1)(0,1,0)(0,0,.5)(1.5,0,0)}<br />

\pstThreeDDot[drawCoor=true](1,-1,1.25)<br />

\end{pspicture}


2.3 Put naredbe 26<br />

2.3.2 \pstPlanePut<br />

Ova naredba omogućava postavljanje željenog objekta u jednu od tri koordinatne<br />

ravni <strong>3D</strong> sistema. Sama definicija ove naredbe identična je prethodnoj:<br />

⋆ \pstPlanePut[opcije](x,y,z){objekat} ⋆<br />

Med¯utim, opcioni argumenti ove naredbe se ured¯uju pomoću dva parametra:<br />

plane i planecorr.<br />

plane<br />

Parametrom plane se vrši izbor ravni u koju se objekat želi postaviti. Objekat<br />

može biti bilo kojeg tipa, ali u većini slučajeva on je neka vrsta teksta.<br />

Referentna tačka objekta je sa lijeve strane vertikalno centrirana, obično<br />

vid¯ena kao u poziciji lB.<br />

Moguće vrijednosti za ovaj parametar su: xy, xz, yz; a default vrijednost<br />

xy. Prvi parametar odred¯uje pozitivan smjer za širinu, a drugi za visinu.<br />

Kroz naredne primjere su ilustrovane sve tri vrijednosti za ovaj parametar.<br />

x<br />

xy plane<br />

xy plane<br />

xy plane<br />

z<br />

y<br />

\begin{pspicture}(-4,-3.5)(3,3.5)<br />

\psset{Alpha=30}<br />

\pstThreeDCoor[<br />

linecolor=MidnightBlue,<br />

linewidth=.9pt,<br />

xMin=-3,yMin=-3,<br />

zMin=-3,zMax=3.3]<br />

\pstPlanePut[plane=xy](0,0,-2)<br />

{\fbox{\LARGE\emph{xy plane}}}<br />

\pstPlanePut[plane=xy](0,0,0)<br />

{\fbox{\LARGE\emph{xy plane}}}<br />

\pstPlanePut[plane=xy](0,0,2)<br />

{\fbox{\LARGE\emph{xy plane}}}<br />

\end{pspicture}


xz plane<br />

2.3 Put naredbe 27<br />

x<br />

xz plane<br />

z<br />

xz plane<br />

y<br />

\begin{pspicture}(-4.5,-3)(3,3.5)<br />

\pstThreeDCoor[<br />

linecolor=MidnightBlue,<br />

linewidth=.9pt,xMin=-3,<br />

yMin=-3,yMax=3,<br />

zMin=-3,zMax=3.3]<br />

\pstPlanePut[plane=xz](0,-2,0)<br />

{\fbox{\LARGE\emph{xz plane}}}<br />

\pstPlanePut[plane=xz](0,0,0)<br />

{\fbox{\LARGE\emph{xz plane}}}<br />

\pstPlanePut[plane=xz](0,2,0)<br />

{\fbox{\LARGE\emph{xz plane}}}<br />

\end{pspicture}<br />

x<br />

z<br />

yz plane<br />

yz plane<br />

yz plane<br />

y<br />

\begin{pspicture}(-2.5,-3)(3,3.5)<br />

\pstThreeDCoor[<br />

linecolor=MidnightBlue,<br />

linewidth=.9pt,yMin=-3,<br />

xMin=-3,xMax=3,<br />

zMin=-3,zMax=3.3]<br />

\pstPlanePut[plane=yz](-2,0,0)<br />

{\fbox{\LARGE\emph{yz plane}}}<br />

\pstPlanePut[plane=yz](0,0,0)<br />

{\fbox{\LARGE\emph{yz plane}}}<br />

\pstPlanePut[plane=yz](2,0,0)<br />

{\fbox{\LARGE\emph{yz plane}}}<br />

\end{pspicture}<br />

planecorr<br />

U prethodnim primjerima je moguće uočiti i neke nepravilnosti. Naime, u<br />

prva dva primjera tekst je postavljen u odred¯ene ravni, ali je njegov odraz na<br />

papiru na neki način izokrenut. Kod trećeg primjera to nije slučaj i tekst je<br />

u potpunosti čitljiv. Za korekciju ovakvih nepravilnosti koristi se parametar<br />

planecorr.<br />

O čemu se zapravo <strong>rad</strong>i? Naredba\pstPlanePut sa parametromplane=xy<br />

postavlja tekst u xy ravan sa gornje strane, tako da parametar x odred¯uje<br />

pozitivan smjer za širinu, a parametar y pozitivan smjer za visinu. Prema<br />

tome, ako je odraz teksta izokrenut, onda je ravan u prostoru postavljena<br />

tako da je vidimo sa donje strane.<br />

Sljedeće tri opcije mogu biti vrijednosti parametra planecorr:


•XZ<br />

2.3 Put naredbe 28<br />

⋆ off<br />

Izbor ove opcije ne uzrokuje nikakve promjene u prikazu i ona je, takod¯er, default<br />

vrijednost ovog parametra. Stoga je opcija planecorr=off postavljena<br />

u slučaju kada nedostaje parametar planecorr.<br />

•XY<br />

x<br />

z<br />

•YZ<br />

y<br />

\begin{pspicture}(-2.7,-2.2)(2.5,4.5)<br />

\pstThreeDCoor[linecolor=black,<br />

xMax=3.2,yMax=3.2,zMax=4]<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=Violet](1,-1,2)<br />

\pstPlanePut[plane=xy](1,-1,2)<br />

{\fbox{\LARGE\Violet\textbf{XY}}}<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=magenta](1,3,1)<br />

\pstPlanePut[plane=xz](1,3,1)<br />

{\fbox{\LARGE\magenta\textbf{XZ}}}<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=cyan](-1.5,0.5,3)<br />

\pstPlanePut[plane=yz](-1.5,0.5,3)<br />

{\fbox{\LARGE\cyan\textbf{YZ}}}<br />

\end{pspicture}<br />

⋆ normal<br />

Opcijom planecorr=normal se za svaki položaj koordinatnog sistema obezbjed¯uju<br />

ravni u kojima je postavljeni tekst čitljiv iz perspektive posmatranja<br />

<strong>3D</strong> sistema.<br />

x<br />

•XY<br />

z<br />

•YZ<br />

•XZ<br />

y<br />

\begin{pspicture}(-2.7,-2.2)(2.5,4.5)<br />

\pstThreeDCoor[linecolor=black,<br />

xMax=3.2,yMax=3.2,zMax=4]<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=Violet](1,-1,2)<br />

\pstPlanePut[plane=xy,planecorr=normal]%<br />

(1,-1,2){\fbox{\LARGE\Violet\textbf{XY}}}<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=magenta](1,3,1)<br />

\pstPlanePut[plane=xz,planecorr=normal]%<br />

(1,3,1){\fbox{\LARGE\magenta\textbf{XZ}}}<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=cyan](-1.5,0.5,3)<br />

\pstPlanePut[plane=yz,planecorr=normal]%<br />

(-1.5,0.5,3){\fbox{\LARGE\cyan\textbf{YZ}}}<br />

\end{pspicture}


2.4 Povezivanje objekata 29<br />

⋆ xyrot<br />

Ova opcija omogućava dodatnu korekciju za xy ravan. Zbog simetričnosti<br />

pogleda, nekada je potrebno rotirati tekst u xy ravni tako da je linija teksta<br />

paralelna sa y, a ne x osom. To se postiže rotacijom ravni xy, a pomoću<br />

opcije planecorr=xyrot.<br />

x<br />

z<br />

•XY<br />

•YZ<br />

•XZ<br />

y<br />

\begin{pspicture}(-1.75,-2.25)(4,5)<br />

\psset{Alpha=69.3,Beta=19.43}<br />

\pstThreeDCoor[linecolor=black,<br />

xMax=4,yMax=4,zMax=4]<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=Violet](1,-1,2)<br />

\pstPlanePut[plane=xy,planecorr=xyrot]%<br />

(1,-1,2){\fbox{\LARGE\Violet\textbf{XY}}}<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=magenta](1,3.5,1)<br />

\pstPlanePut[plane=xz,planecorr=normal]%<br />

(1,3.5,1){\fbox{\LARGE\magenta\textbf{XZ}}}<br />

\pstThreeDDot<br />

[drawCoor=true,linecolor=cyan](-2,1,3)<br />

\pstPlanePut[plane=yz]%<br />

(-2,1,3){\fbox{\LARGE\cyan\textbf{YZ}}}<br />

\end{pspicture}<br />

2.4 Povezivanje objekata<br />

Povezivanje objekata u <strong>3D</strong> sistemu vrši se definisanjem node-ova. Definicija<br />

<strong>3D</strong> node-a slična je definicijama dvodimenzionalnih node-ova i glasi:<br />

⋆ \pstThreeDNode(x,y,z){ime node-a} ⋆<br />

gdje je (x,y,z) referentna tačka, a ime node-a najčešće definisano slovima<br />

A, B, C, . . .<br />

Ovom definicijom se zapravo definiše dvodimenzionalan node u <strong>3D</strong> tački<br />

(x,y,z), pa se povezivanje dva <strong>3D</strong> node-a vrši sintaksom za povezivanje 2D<br />

node-ova pst-plot paketa:<br />

⋆ \nc-veza{arrows}{node A}{node B} ⋆<br />

Parametrom veza se specificira način povezivanja node-ova, a moguće su<br />

sljedeće opcije 1 : ncline, ncarc, ncdiag, ncdiagg, nccurve, . . .<br />

Evo nekoliko jednostavnijih primjera . . .<br />

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


•<br />

2.4 Povezivanje objekata 30<br />

z<br />

x<br />

node A<br />

node B<br />

y<br />

\begin{pspicture}(-3,-2)(3,4)<br />

\pstThreeDCoor[linewidth=.8pt,<br />

linecolor=MidnightBlue,<br />

xMax=3.5,yMax=3.5]<br />

\pstThreeDPut[linecolor=RedOrange](1.4,1,0)<br />

{\ovalnode{A}{\textsl{node A}}}<br />

\pstThreeDPut[linecolor=RedOrange](0,2,3)<br />

{\ovalnode{B}{\textsl{node B}}}<br />

\nccurve{->}{A}{B}<br />

\end{pspicture}<br />

x<br />

z<br />

translacija<br />

y<br />

\begin{pspicture}(-3,-2)(3,4)<br />

\pstThreeDCoor[linewidth=.8pt,<br />

linecolor=MidnightBlue,<br />

xMax=3.5,yMax=3.5]<br />

\pstThreeDBox(1.2,0,0)%<br />

(-.5,0,0)(0,-1,0)(0,0,-1.5)<br />

\pstThreeDNode(1.2,0,0){A}<br />

\pstThreeDPut[linecolor=RedOrange](0,2,3.4)<br />

{\rnode{B}<br />

{\pstThreeDBox(0,0,0)%<br />

(-.5,0,0)(0,-1,0)(0,0,-1.5)}}<br />

\ncline{->}{A}{B}<br />

\tvput{\small\emph{translacija}}<br />

\end{pspicture}<br />

x<br />

z<br />

tačka u xz ravni<br />

y<br />

\begin{pspicture}(-3,-2.4)(3,4.4)<br />

\pstThreeDCoor[linewidth=.8pt,<br />

linecolor=MidnightBlue,<br />

xMin=0,yMin=0,zMin=0,<br />

xMax=3.5,yMax=3.5]<br />

\pstThreeDPlaneGrid[planeGrid=xz,<br />

linecolor=lightgray,<br />

linewidth=.4pt,<br />

xsubticks=7,<br />

ysubticks=8](0,0)(3.5,4)<br />

\pstThreeDDot[linecolor=RedOrange](2,0,2)<br />

\pstThreeDNode(2,0,2){A}<br />

\pstThreeDPut(2,2,0){\rnode{B}{<br />

\texttt{\emph{ta\v cka u xz ravni}}}}<br />

\ncarc[linewidth=.6pt]{


Poglavlje 3<br />

Osnovni <strong>3D</strong> grafički objekti<br />

U ovom poglavlju će biti definisano mnoštvo naredbi za crtanje osnovnih grafičkih<br />

objekata <strong>3D</strong> sistema, kao što su: tačka, prava, mnogougao, kvadar, . . . Neke od<br />

njih su već korištete u prethodnom izlaganju, ali će u nastavku biti detaljno<br />

objašnjene i ilustrovane brojnim primjerima.<br />

3.1 Tačka<br />

Naredba za crtanje tačke u <strong>3D</strong> sistemu je:<br />

⋆ \pstThreeDDot[Opcije](x,y,z) ⋆<br />

(x,y,z) su koordinate tačke koja se crta, dok opcioni argumenti odred¯uju<br />

njen izgled.<br />

Parametri kojima se specificira izgled tačke su svi parametri istog tipa<br />

naredbi \psdot i \psdots pst-plot paketa, a oni su: dotstyle, dotscale,<br />

dotsize,dotangle,fillcolor, . . . Varijacije svih ovih parametar su, takod¯er,<br />

preuzete iz pst-plot paketa. Jedini dodatni i posebni parametar naredbe<br />

\pstThreeDDot jeste parametar drawCoor, sa mogućim vrijednostima true<br />

i false, koji omogućava iscrtavanje koordinatnih linija tačke (isprekidanim<br />

linijama). Takod¯er je moguće i nacrtati ‘nevidljivu’ tačku opcijomdotstyle=<br />

none. U ovom slučaju naredba crta samo koordinatne linije tačke, ako je<br />

uključena i opcija drawCoor=true.<br />

U narednim primjerima ilustrovane su neke opcije za pomenute parametre.<br />

Korištena je i naredba \multido <strong>rad</strong>i što bolje demonstracije crtanja<br />

tačaka u <strong>3D</strong> sistemima. (Nacrtane su tačke oblika (a,a,a), gdje a ∈ {−3, −2,<br />

− 1, 0, 1, 2, 3}.)


3.1 Tačka 32<br />

x<br />

y<br />

z<br />

<br />

<br />

\begin{pspicture}(-2.25,-2.2)(2,2.2)<br />

\psset{Alpha=30,Beta=60,arrowsize=0.15,<br />

drawCoor=true,dotstyle=pentagon*,<br />

dotscale=1.6,linecolor=MidnightBlue}<br />

\pstThreeDCoor[linewidth=.9pt,linecolor=black,<br />

xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]<br />

\pstThreeDDot(-1,1,1)<br />

\pstThreeDDot(1,-1,-1)<br />

\end{pspicture}<br />

x<br />

y<br />

z<br />

<br />

<br />

<br />

<br />

<br />

<br />

\begin{pspicture}(-2,-2.5)(2,2.8)<br />

\psset{Alpha=65,Beta=30,linecolor=MidnightBlue}<br />

\pstThreeDCoor[linewidth=.9pt,linecolor=black,<br />

xMin=-2,xMax=2,yMin=-2,yMax=2,zMin=-2,zMax=2]<br />

\pstThreeDDot[dotstyle=pentagon*,<br />

dotscale=2.6,drawCoor=true](-1,1,1)<br />

\psset{dotstyle=triangle*,dotscale=1.8}<br />

\pstThreeDDot[dotangle=0](-1.22,.9,1.28)<br />

\pstThreeDDot[dotangle=68](-1,.6,1.05)<br />

\pstThreeDDot[dotangle=140](-.8,.82,.7)<br />

\pstThreeDDot[dotangle=212](-1.05,1.25,.67)<br />

\pstThreeDDot[dotangle=-60](-1.3,1.25,1.08)<br />

\end{pspicture}<br />

x<br />

y<br />

z<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

\begin{pspicture}(-3.25,-3.2)(3,3.5)<br />

\psset{Alpha=30,Beta=30,<br />

dotstyle=+,dotsize=6pt,<br />

dotangle=45,drawCoor=true,<br />

arrowsize=0.15}<br />

\pstThreeDCoor[linewidth=1pt,<br />

linecolor=MidnightBlue,<br />

xMin=-3.2,yMin=-3.2,zMin=-3.2,<br />

xMax=3.2,yMax=3.2,zMax=3.2]<br />

\multido{\n=-3+1}{7}{<br />

\pstThreeDDot(\n,\n,\n)}<br />

\end{pspicture}


•<br />

<br />

<br />

3.2 Linija 33<br />

3.2 Linija<br />

Definicija naredbe za crtanje trodimenzionalne linije (prave) ista je kao definicija<br />

odgovarajuće naredbe pst-plot paketa (\psline):<br />

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

Ona omogućava crtanje prave ili izlomljene linije.<br />

Dijelovi za opcije i arrow su opcioni, a broj tačaka je jedino ograničen<br />

memorijom. Sve opcije za pstricks linije su moguće, pa ne postoje dodatne<br />

opcije za <strong>3D</strong> linije. Naredba za crtanje linija se koristi i za crtanje vektora,<br />

a jedina razlika je u izboru opcije za arrow, u slučaju linije je to ‘-’, a za<br />

vektor ‘->’.<br />

Za pst-3dplot paket ne postoji specijalna naredba za crtanje poligona,<br />

jer se gotovo isto može postići naredbom \pstThreeDLine. Ipak, za crtanje<br />

trouglova i paralelograma postoje posebne i pogodnije naredbe, o kojima u<br />

nastavku više.<br />

Primjeri<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3,-2.7)(2,2.4)<br />

\psset{Alpha=30,Beta=60,arrowsize=0.15}<br />

\pstThreeDCoor[linewidth=.7pt,<br />

linecolor=black,<br />

xMin=-2,yMin=-2,zMin=-2,<br />

xMax=3,yMax=3,zMax=3]<br />

\pstThreeDDot[dotstyle=diamond*,<br />

drawCoor=true](-1,1,1)<br />

\pstThreeDDot[drawCoor=true](1.5,-1,-1)<br />

\pstThreeDLine[linewidth=2pt,<br />

linecolor=violet](-1,1,1)(1.5,-1,-1)<br />

\end{pspicture}<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2.7,-2.75)(2,3)<br />

\psset{Alpha=30,Beta=-60,drawCoor=true,<br />

dotstyle=Bpentagon,dotscale=1.3,<br />

arrowsize=0.15}<br />

\pstThreeDCoor[linewidth=.8pt,<br />

linecolor=black,<br />

xMin=-2,yMin=-2,zMin=-2,<br />

xMax=2,yMax=2,zMax=2]<br />

\pstThreeDLine[linewidth=3pt,linearc=0.5,<br />

linecolor=violet,arrowscale=1.8]<br />

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

\pstThreeDDot(-1,1,1)<br />

\pstThreeDDot(1.5,-1,-1)<br />

\end{pspicture}


3.2 Linija 34<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2,-2.8)(2,2.8)<br />

\psset{Alpha=60,Beta=50,arrowsize=0.15}<br />

\pstThreeDCoor[linewidth=.7pt,<br />

linecolor=black,<br />

xMax=3,yMax=3,zMax=3]<br />

\pstThreeDLine[linewidth=1.8pt,<br />

linecolor=WildStrawberry,<br />

linearc=0.2]{H-H}%<br />

(3,1,1)(0,2,3)(.5,3,1)(2,0,3)<br />

\end{pspicture}<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-6.8,-2)(4,5)<br />

\pstThreeDCoor[linecolor=black,linewidth=.8pt,<br />

xMin=-3,xMax=3.5,yMin=-3,yMax=3.5,zMin=-1.5,zMax=4.8]<br />

\multido{\iA=1+1,\iB=60+-10}{5}{<br />

\ifcase\iA\or\psset{linecolor=black}\or\psset{linecolor=violet}<br />

\or\psset{linecolor=mycolor1}\or\psset{linecolor=WildStrawberry}<br />

\or\psset{linecolor=mycolor}<br />

\fi<br />

\pstThreeDLine[SphericalCoor=true,linewidth=3pt]<br />

(\iA,0,\iB)(\iA,30,\iB)(\iA,60,\iB)(\iA,90,\iB)(\iA,120,\iB)<br />

(\iA,150,\iB)(\iA,180,\iB)(\iA,210,\iB)(\iA,240,\iB)<br />

(\iA,270,\iB)(\iA,300,\iB)(\iA,330,\iB)(\iA,360,\iB)}<br />

\multido{\iA=0+30}{12}{<br />

\pstThreeDLine[SphericalCoor=true,linestyle=dashed]<br />

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

\end{pspicture}


•<br />

•<br />

•<br />

3.3 Trougao 35<br />

U prethodnom primjeru su korištene sferne koordinate <strong>3D</strong> tačaka, a njihovo<br />

korištenje omogućava se opcijomSphericalCoor=true. I u ovom slučaju<br />

moraju postojati tri parametra (r,φ,θ), gdje je r poluprečnik, a φ i θ sferni<br />

uglovi. Sferne koordinate je moguće koristiti kod svih naredbi koje zahtijevaju<br />

trodimenzionalne koordinate, osim kod naredbi za crtanje matematičkih<br />

funkcija.<br />

Za crtanje izlomljenih linija značajan je parametar linejoin, kojim se<br />

specificira način na koji se tačke spajaju. Ovaj parametar ima tri opcije<br />

0|1|2, koje su ilustrovane na sljedećoj slici, a default vrijednost je 0.<br />

linejoin=0 linejoin=1 linejoin=2<br />

Slika 3.1: Značenje opcija linejoin=0|1|2 za crtanje linija<br />

3.3 Trougao<br />

Naredba za crtanje trougla je:<br />

⋆ \pstThreeDTriangle[opcije](P1)(P2)(P3) ⋆<br />

gdje tačke P1, P2 i P3 odred¯uju vrhove trougla.<br />

Ponovo su sve pstricks opcije moguće. Za trouglove je posebno važan<br />

parametar linejoin (slika 3.1).<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3.2,-4)(3,3.1)<br />

\psset{linejoin=1,arrowsize=0.15}<br />

\pstThreeDCoor[<br />

linecolor=black,<br />

linewidth=.8pt,xMin=-4,<br />

yMin=-4,zMin=-4,zMax=3]<br />

\pstThreeDTriangle[<br />

fillcolor=JungleGreen!40,<br />

fillstyle=solid,linewidth=1.5pt]<br />

(3,1,-2)(1,4,-1)(-2,2,0)<br />

\pstThreeDTriangle[drawCoor=true,<br />

linecolor=MidnightBlue,<br />

linewidth=2pt]<br />

(3.8,1,2)(3,4,-1)(-1,-.7,1)<br />

\end{pspicture}


•<br />

•<br />

•<br />

•<br />

<br />

3.4 Paralelogram 36<br />

3.4 Paralelogram<br />

Paralelogram je četverougao koji ima dva para paralelnih stranica, pa je za<br />

crtanje u potpunosti odred¯en sa početnom tačkom (koja predstavlja jedan vrh<br />

paralelograma) i dva vektora smjera koji odred¯uju stranice paralelograma.<br />

Na sljedećoj slici su prikazani ti vektori.<br />

z<br />

⃗u<br />

P<br />

⃗v<br />

⃗o<br />

x<br />

y<br />

Slika 3.2: Vektori položaja paralelograma<br />

Za pst-3dplot paket vektori ⃗o, ⃗u i ⃗v jednoznačno odred¯uju paralelogram<br />

sa jednim vrhom u tački P čiji je vektor položaja ⃗o, a vektori ⃗u i ⃗v su vektori<br />

pravca stranica paralelograma, koji se nalazi u ravni odred¯enoj vektorima ⃗u<br />

i ⃗v. Za crtanje paralelograma u <strong>3D</strong> sistemu neophodno je precizirati upravo<br />

ove vektore, te naredba za crtanje paralelograma ima oblik:<br />

⋆ \pstThreeDSquare[Opcije](⃗o)(⃗u)(⃗v) ⋆<br />

Paralelogram odred¯en istim vektorima ⃗o, ⃗u i ⃗v kao na slici 3.2, nacrtan<br />

pomoću naredbe \pstThreeDSquare, prikazan je u sljedećem primjeru:<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2.2,-2.2)(2.5,4.1)<br />

\psset{drawCoor=true,arrowsize=0.15}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=.8pt,<br />

xMin=-2.5,xMax=2.5,<br />

yMin=-2.5,yMax=2.5,<br />

zMin=-1,zMax=4]<br />

\pstThreeDSquare[linewidth=1.5pt,<br />

linecolor=MidnightBlue]<br />

(-2,2,3)(3.7,0,0)(0,1,0)<br />

\end{pspicture}


•<br />

3.5 Paralelopiped 37<br />

x<br />

y<br />

z<br />

\begin{pspicture}(-2.6,-2.3)(2.5,4.8)<br />

\psset{Alpha=-20,Beta=48,<br />

linecolor=MidnightBlue,<br />

linewidth=1.5pt,arrowsize=0.15}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=.8pt,<br />

xMin=-3,yMin=-3,zMin=-1,<br />

xMax=2,yMax=2,zMax=4]<br />

\pstThreeDSquare<br />

(-2,2,3)(3.7,0,0)(0,1,0)<br />

\pstThreeDSquare[RotZ=40]<br />

(-2,2,3)(3.7,0,0)(0,1,0)<br />

\pstThreeDSquare[RotZ=80]<br />

(-2,2,3)(3.7,0,0)(0,1,0)<br />

\pstThreeDSquare[RotZ=120]<br />

(-2,2,3)(3.7,0,0)(0,1,0)<br />

\end{pspicture}<br />

3.5 Paralelopiped<br />

Zapst-3dplot paket, paralelopiped je samo specijalan slučaj paralelograma.<br />

Naime, kada vektorima ⃗u i ⃗v pridružimo treći vektor ⃗w u istoj početnoj tački,<br />

dobijamo tri povezana vektora koji sada odred¯uju trodimenzionalan objekat–<br />

paralelopiped (slika 3.3).<br />

z<br />

⃗v<br />

⃗u<br />

⃗w<br />

⃗o<br />

x<br />

y<br />

Slika 3.3: Vektori položaja paralelopipeda<br />

Prema tome, sintaksa naredbe za crtanje <strong>3D</strong> ‘kutije’ je:<br />

⋆ \pstThreeDBox[Opcije](⃗o)(⃗u)(⃗v)(⃗w) ⋆<br />

gdje je ⃗o vektor položaja proizvoljne početne tačke (jednog vrha paralelopipeda),<br />

a ⃗u, ⃗v i ⃗w vektori pravca koji odred¯uju stranice paralelopipeda–<br />

vektori položaja paralelopipeda.


•<br />

•<br />

3.5 Paralelopiped 38<br />

Paralelopiped, čiji su vektori položaja predstavljeni na prethodnoj slici,<br />

nacrtan je pomoću naredbe \pstThreeDBox u narednim primjerima. (To je,<br />

zapravo, kvadar je su mu vektori položaja med¯usobno ortogonalni.)<br />

x<br />

z<br />

\begin{pspicture}(-2.2,-1.6)(2,4.6)<br />

\psset{Alpha=30,Beta=30}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=.8pt,arrowsize=0.15,<br />

xMin=-2,yMin=-2,xMax=2,yMax=2]<br />

\pstThreeDLine[linecolor=WildStrawberry,<br />

⃗u<br />

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

⃗v<br />

• ⃗w \pstThreeDPut(-.75,.35,.7){$\vec{o}$}<br />

\pstThreeDPut(-.6,1.2,3){$\vec{u}$}<br />

⃗o \pstThreeDPut(0,1,2.3){$\vec{v}$}<br />

\pstThreeDPut(-1.2,1.5,2.3){$\vec{w}$}<br />

\psset{linecolor=violet,linewidth=1.2pt}<br />

\pstThreeDBox(-1,1,2)(0,0,2)(2,0,0)(0,1,0)<br />

y \pstThreeDDot[drawCoor=true](-1,1,2)<br />

\end{pspicture}<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-2.2,-1)(2,4.6)<br />

\psset{Alpha=120,Beta=30}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=.8pt,arrowsize=0.15,<br />

xMin=-2,yMin=-2,zMin=-1,<br />

xMax=2,yMax=2,zMax=4]<br />

\pstThreeDLine[linecolor=WildStrawberry,<br />

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

\psset{linecolor=violet,linewidth=1.2pt}<br />

\pstThreeDBox(-1,1,2)(0,0,2)(2,0,0)(0,1,0)<br />

\pstThreeDDot[drawCoor=true](-1,1,2)<br />

\end{pspicture}<br />

y<br />

z<br />

x<br />

\begin{pspicture}(-2.2,-1)(2,4.7)<br />

\psset{Alpha=210,Beta=30}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=.8pt,arrowsize=0.15,<br />

xMin=-2,yMin=-2,zMin=-1,<br />

xMax=2,yMax=2,zMax=4]<br />

\pstThreeDLine[linecolor=WildStrawberry,<br />

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

\psset{linecolor=violet,linewidth=1.2pt}<br />

\pstThreeDBox(-1,1,2)(0,0,2)(2,0,0)(0,1,0)<br />

\pstThreeDDot[drawCoor=true](-1,1,2)<br />

\end{pspicture}


•<br />

3.5 Paralelopiped 39<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-2.2,-2.5)(2,2.7)<br />

\psset{Alpha=120,Beta=100}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=.8pt,arrowsize=0.15,<br />

xMin=-2,yMin=-2,zMin=-4,<br />

xMax=2,yMax=2,zMax=4]<br />

\pstThreeDLine[linecolor=WildStrawberry,<br />

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

\psset{linecolor=violet,linewidth=1.2pt}<br />

\pstThreeDBox(-1,1,2)(0,0,2)(2,0,0)(0,1,0)<br />

\pstThreeDDot[drawCoor=true](-1,1,2)<br />

\end{pspicture}<br />

Za crtanje kvadra postoji još jedna specijalna naredba, koja omogućava<br />

sjenčenje osnova i bočnih strana kvadra. Njena definicija je:<br />

⋆ \psBox[Opcije](⃗o){širina}{dubina}{visina} ⋆<br />

gdje je ⃗o vektor položaja donjeg lijevog vrha kvadra. Izgled kvadra determinišu<br />

obavezni parametri širina, dubina i visina, koji se odražavaju u<br />

smjeru x, y i z ose, respektivno.<br />

x<br />

z<br />

y<br />

\psset{SegmentColor=<br />

{[cmyk]{0.98,0.13,0,0.43}}}<br />

\begin{pspicture}(-3.2,-2.5)(2,3)<br />

\psset{Alpha=30,Beta=45}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=1pt,xMin=-2,xMax=3,<br />

yMin=-2,yMax=3,zMin=-2,zMax=3]<br />

\psBox(0,0,0){2}{1.4}{3.4}<br />

\end{pspicture}<br />

Za naredbu \psBox postoje dva parametra. Parametar showInside, sa<br />

mogućim vrijednostima true|false (default: true), omogućava sjenčenje<br />

osnova kvadra i na taj način skrivanje njegove unutrašnjosti. U sljedećem<br />

primjeru korištena je opcija showInside=false.


3.5 Paralelopiped 40<br />

x<br />

y<br />

z<br />

\begin{pspicture}(-3.2,-2.5)(2,3)<br />

\psset{Alpha=-30,Beta=45,<br />

xyzLight=0.5 2 -2.5}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=1pt,xMin=-2,xMax=3,<br />

yMin=-2,yMax=3,zMin=-2,zMax=3]<br />

\psBox[showInside=false,<br />

SegmentColor={[cmyk]{0,0.53,0.38,0}}]<br />

(0,0,0){2}{1.4}{3.4}<br />

\end{pspicture}<br />

Intenzitet sjenčenja reguliše parametar xyzLight, i u narednim primjerima<br />

je ilustrovano njegovo korištenje.<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-3,-2.1)(2,3.2)<br />

\psset{Beta=30,xyzLight=-7 1 4}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=1pt,xMin=-2,xMax=3,<br />

yMin=-2,yMax=3,zMin=-2,zMax=3]<br />

\psBox[showInside=false,<br />

SegmentColor={[cmyk]{0,0.53,0.38,0}}]<br />

(2,1,1.5){2}{1.4}{4}<br />

\end{pspicture}<br />

x<br />

y<br />

z<br />

\begin{pspicture}(-3.25,-2.1)(2,3.2)<br />

\psset{Alpha=-30,Beta=30,<br />

xyzLight=1 1 -4}<br />

\pstThreeDCoor[linecolor=black,<br />

linewidth=1pt,xMin=-2,xMax=3,<br />

yMin=-2,yMax=3,zMin=-2,zMax=3]<br />

\psBox[showInside=false,<br />

SegmentColor={[cmyk]{0,0.53,0.38,0}}]<br />

(0,0,0){2}{1.4}{4}<br />

\end{pspicture}<br />

Boja kojom se vrši sjenčenje može se proizvoljno odabrati pomoću opcije<br />

SegmentColor={[cmyk]{c,m,y,k}}. U narednim primjerima je za boju<br />

sjenčenja odabrana MidnightBlue ({c,m,y,k}={0.98,0.13,0,0.43}).


3.5 Paralelopiped 41<br />

x<br />

y<br />

z<br />

\begin{pspicture}(-3.25,-2.1)(2,3.2)<br />

\psset{Alpha=-30,Beta=-45,<br />

xyzLight=1 -1 -4}<br />

\pstThreeDCoor[linecolor=DarkBlue,<br />

linewidth=1pt,xMin=-2,xMax=3,<br />

yMin=-2,yMax=3,zMin=-2,zMax=3]<br />

\psBox[SegmentColor={<br />

[cmyk]{0.98,0.13,0,0.43}}]<br />

(0,0,0){2}{1.4}{4}<br />

\end{pspicture}<br />

x<br />

y<br />

z<br />

\begin{pspicture}(-3.25,-2.1)(2,3.2)<br />

\psset{Alpha=-30,Beta=-45,<br />

xyzLight=1 2 3}<br />

\pstThreeDCoor[linecolor=DarkBlue,<br />

linewidth=1pt,xMin=-2,xMax=3,<br />

yMin=-2,yMax=3,zMin=-2,zMax=3]<br />

\psBox[SegmentColor={<br />

[cmyk]{0.98,0.13,0,0.43}}]<br />

(0,0,0){2}{1.4}{4}<br />

\end{pspicture}<br />

z<br />

y<br />

x<br />

\begin{pspicture}(-2.25,-2.1)(2,3.2)<br />

\psset{Alpha=150,Beta=30,<br />

xyzLight=-4 2 7}<br />

\pstThreeDCoor[linecolor=DarkBlue,<br />

linewidth=1pt,xMin=-2,xMax=3,<br />

yMin=-2,yMax=3,zMin=-2,zMax=3]<br />

\psBox[SegmentColor={<br />

[cmyk]{0.98,0.13,0,0.43}}]<br />

(0,0,0){2}{1.4}{4}<br />

\end{pspicture}


Poglavlje 4<br />

Složeni <strong>3D</strong> grafički objekti<br />

4.1 Elipse i kružnice<br />

Elipsa, kao kriva drugog reda u ravni, ima jednačinu:<br />

e :<br />

(x − x M ) 2<br />

a 2 + (y − y M) 2<br />

b 2 = 1,<br />

gdje je tačka (x M ,y M ) centar elipse, a parametri a i b predstavljaju malu,<br />

odnosno veliku poluosu elipse.<br />

y<br />

F 2<br />

a<br />

e<br />

a<br />

b<br />

e<br />

M<br />

F 1<br />

x<br />

Slika 4.1: Elipsa u 2D sistemu<br />

Ako je u prethodnoj jednačini a = b, onda dobijamo jednačinu kružnice<br />

poluprečnika a, koja je, prema tome, samo specijalan slučaj elipse.<br />

Parametarski oblik jednačine elipse je:<br />

{ x = a · cos α<br />

e :<br />

y = b · sin α ,<br />

a vektorski (da bi dobili elipsu u <strong>3D</strong> sistemu):<br />

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


4.1 Elipse i kružnice 43<br />

gdje je ⃗m vektor položaja centra elipse, a ⃗u i ⃗v vektori smjera, koji su<br />

ortogonalni med¯usobno, i čiji su intenziteti jednaki parametrima a i b.<br />

Na sljedećoj slici prikazana je elipsa u <strong>3D</strong> sistemu, sa vektorima ⃗m, ⃗u i ⃗v.<br />

z<br />

⃗u<br />

⃗v<br />

x<br />

⃗m<br />

Slika 4.2: Elipsa u <strong>3D</strong> sistemu<br />

y<br />

4.1.1 Elipsa<br />

Veoma je teško u <strong>3D</strong> koordinatnom sistemu uočiti razliku izmed¯u elipse i<br />

kružnice. U zavisnosti od perspektive pogleda na koordinatni sistem, elipsa<br />

može biti vid¯ena kao kružnica i obratno.<br />

Naredba za crtanje elipse u <strong>3D</strong> sistemu je:<br />

⋆ \pstThreeDEllipse[Opcije](⃗m)(⃗u)(⃗v) ⋆<br />

Vektori ⃗m, ⃗u i ⃗v prikazani su na slici (4.2): ⃗m je vektor položaja tačke koja je<br />

centar elipse, a ⃗u i ⃗v su tzv. vektori smjera koji odred¯uju smjerove i dužine<br />

poluosa elipse i moraju biti ortogonalni med¯usobno (njihovi inetenziteti su<br />

jednaki poluosama a i b – respektivno).<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-1.9,-2.2)(2,2.8)<br />

\psset{Alpha=60}<br />

\pstThreeDCoor[linecolor=black!75,<br />

xMax=3,yMax=2.5,zMax=2.5]<br />

\psset{linecolor=DarkOrchid!90,linewidth=1.5pt}<br />

\pstThreeDEllipse<br />

(0,0,0)(-0.25,0.5,-0.5)(1.25,-0.625,-1.25)<br />

\psset{linecolor=thistle,linewidth=1.2pt}<br />

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

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

\end{pspicture}


•<br />

4.1 Elipse i kružnice 44<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-1.8,-1.5)(2,3)<br />

\psset{Alpha=60}<br />

\pstThreeDCoor[linecolor=black!75,<br />

xMax=2.5,yMax=2.5,zMax=2.5]<br />

\pstThreeDDot[drawCoor=true,<br />

linecolor=thistle](-1,0.5,0.5)<br />

\psset{linecolor=DarkOrchid!90,linewidth=1.5pt}<br />

\pstThreeDEllipse<br />

(-1,0.5,0.5)(-0.2,0.4,-0.4)(1,-0.5,-1)<br />

\end{pspicture}<br />

Za izmjenu karaktristika elipse (debljina linije, boja . . . ) koriste se svi već<br />

postojeći parametri pst-plot paketa, kao i dva dodatna koji omogućavaju<br />

crtanje odred¯enih segmenata elipse definisanjem početnog i krajnjeg ugla<br />

crtanja, a oni su:<br />

⋆ beginAngle (default: 0),<br />

⋆ endAngle (default: 360).<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2.5,-2.3)(2,3.7)<br />

\psset{Alpha=60,linewidth=1.5pt}<br />

\pstThreeDCoor[linecolor=black!75,<br />

xMax=4,yMax=2.5,zMax=3.5]<br />

\pstThreeDEllipse[linecolor=violet,<br />

beginAngle=0,endAngle=290]<br />

(0,-1,0)(-.25,.5,-.5)(1.25,-.625,-1.25)<br />

\pstThreeDEllipse[linecolor=NavyBlue,<br />

beginAngle=-280,endAngle=0]<br />

(.7,.6,0.4)(-.2,.4,-.4)(1,-.5,-1)<br />

\pstThreeDEllipse[linecolor=DarkOrchid!90,<br />

beginAngle=-90,endAngle=125]<br />

(-.8,.5,-.8)(-.16,.32,-.32)(.8,-.4,-.8)<br />

\end{pspicture}<br />

Redoslijed navod¯enja vektora ⃗u i ⃗v u prethodnoj definiciji je važan, jer<br />

odred¯uje smjer crtanja elipse, koji je u skladu sa pravilom desne ruke:<br />

ako se prvi vektor (⃗u) najkraćim putem dovede do poklapanja sa drugim vektorom<br />

(⃗v), onda dobijamo smjer pozitivnog kretanja. Ova činjenica je posebno<br />

značajna prilikom korištenja parametara beginAngle i endAngle.<br />

Na sljedećoj slici prikazana je ilustracija uticaja redoslijeda navod¯enja<br />

vektora ⃗u i ⃗v na smjer crtanja elipse, tako što su sve linije crtane sa opcijom<br />

arrows=->.


4.1 Elipse i kružnice 45<br />

x<br />

x<br />

1.0 2.0<br />

1.0 2.0<br />

-1.0<br />

-1.0<br />

z<br />

-1.0<br />

z<br />

-1.0<br />

2.0<br />

1.0<br />

-1.0<br />

2.0<br />

1.0<br />

-1.0<br />

1.0 2.0<br />

1.0 2.0<br />

y<br />

y<br />

\psset{arrows=->,linewidth=1.5pt,<br />

linecolor=violet}<br />

\begin{pspicture}(-2.8,-1.6)(3,3.2)<br />

\pstThreeDCoor[linecolor=black,<br />

IIIDticks,xMax=3,yMax=3,zMax=3]<br />

\psset{beginAngle=0,endAngle=90,<br />

arrowscale=1.5}<br />

\pstThreeDEllipse(0,0,0)(2,0,0)(0,2,0)<br />

\pstThreeDEllipse(0,0,0)(0,0,2)(2,0,0)<br />

\pstThreeDEllipse(0,0,0)(0,2,0)(0,0,2)<br />

\end{pspicture}<br />

\vspace{2mm}<br />

\begin{pspicture}(-2.8,-1.5)(3,3)<br />

\pstThreeDCoor[linecolor=black,<br />

IIIDticks,xMax=3,yMax=3,zMax=3]<br />

\psset{beginAngle=0,endAngle=90,<br />

arrowscale=1.5}<br />

\pstThreeDEllipse(0,0,0)(0,2,0)(2,0,0)<br />

\pstThreeDEllipse(0,0,0)(2,0,0)(0,0,2)<br />

\pstThreeDEllipse(0,0,0)(0,0,2)(0,2,0)<br />

\end{pspicture}<br />

Ukoliko vektori ⃗u i ⃗v u definiciji naredbe \pstThreeDEllipse nisu ortogonalni,<br />

L A TEX će i dalje crtati elipsu sa ‘poluosama’ jednakim intenzitetima<br />

vektora ⃗u i ⃗v i koje neće biti ortogonalne.<br />

Na narednoj slici nacrtana je elipsa u xy ravni sa vektorima smjera koji<br />

nisu ortogonalni, te <strong>rad</strong>i što bolje ilustracije ravan xy rotacijom <strong>3D</strong> sistema<br />

smještena u ravan papira. Takod¯er je prikazana ista elipsa sa opcijama<br />

beginAngle=0 i endAngle=90.<br />

x<br />

x<br />

z<br />

y<br />

z<br />

y<br />

\psset{Alpha=0,Beta=90,linewidth=1.5pt,<br />

linecolor=DarkOrchid!90}<br />

\begin{pspicture}(-3.2,-1.9)(1,1.7)<br />

\pstThreeDCoor[linecolor=black!75,<br />

xMax=2,yMax=1.5,zMax=2]<br />

\pstThreeDEllipse(0,0,0)(-0.5,1,0)(2,-0.5,0)<br />

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

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

\end{pspicture} \vspace{1mm}<br />

\begin{pspicture}(-3.2,-1.8)(1,1.6)<br />

\pstThreeDCoor[linecolor=black!75,<br />

xMax=2,yMax=1.5,zMax=2]<br />

\pstThreeDEllipse[beginAngle=0,endAngle=90]<br />

(0,0,0)(-0.5,1,0)(2,-0.5,0)<br />

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

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

\end{pspicture}


•<br />

•<br />

•<br />

••<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

••<br />

•<br />

4.1 Elipse i kružnice 46<br />

Zapravo se <strong>rad</strong>i o tome da zadavanjem proizvoljnih vektora za crtanje<br />

elipse L A TEX računa njihove ‘ortogonalne komponente’, čiji intenziteti odgovaraju<br />

stvarnim poluosama prikazane elipse.<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-1.9,-2)(2,3.2)<br />

\psset{Alpha=60}<br />

\pstThreeDCoor[linecolor=black!75,<br />

xMax=3,yMax=3,zMax=3]<br />

\psset{linecolor=DarkOrchid!90,<br />

linewidth=1.5pt}<br />

\pstThreeDEllipse<br />

(1,1,0.5)(-0.5,0.5,1)(2,-0.5,0.4)<br />

\pstThreeDDot[drawCoor=true](1,1,0.5)<br />

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

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

\end{pspicture}<br />

4.1.2 Kružnica<br />

Kružnica je specijalan slučaj elipse, te ju je moguće nacrtati pomoću naredbe<br />

\pstThreeDEllipse, gdje vektori smjera ⃗u i ⃗v moraju biti istih intenziteta<br />

i ortogonalni med¯usobno (⃗u · ⃗v = ⃗0). Ipak, postoji i posebna naredba za<br />

crtanje kružnice:<br />

⋆ \pstThreeDCircle[Opcije](⃗m)(⃗u)(⃗v) ⋆<br />

gdje vektori ⃗u i ⃗v moraju zadovoljavati već pomenute uvjete, a ⃗m je vektor<br />

položaja centra kružnice.<br />

x<br />

• • • • • • •<br />

z<br />

y<br />

\begin{pspicture}(-2.55,-2.7)(2,3.7)<br />

\psset{linewidth=1.5pt,linecolor=NavyBlue}<br />

\pstThreeDCoor[linecolor=black!75,<br />

xMax=2.8,yMax=2.8,zMax=2.8]<br />

\pstThreeDCircle[linestyle=dashed,linecolor=violet]<br />

(1,1,0)(1,0,0)(0,-1,0)<br />

\pstThreeDCircle(1,1.6,1.5)(.8,.4,.8)(.8,-.8,-.4)<br />

\pstThreeDDot[drawCoor=true,linecolor=NavyBlue]<br />

(1,1.6,1.5)<br />

\psset{linecolor=DarkOrchid!90,linewidth=2pt,<br />

plotpoints=20,showpoints=true}<br />

\pstThreeDCircle(1.6,.6,2)(.8,.4,.8)(.8,-.8,-.4)<br />

\pstThreeDDot[drawCoor=true,linecolor=DarkOrchid!90]<br />

(1.6,.6,2)<br />

\end{pspicture}


4.2 Površi drugog reda 47<br />

4.2 Površi drugog reda<br />

4.2.1 Cilindar<br />

Naredba za crtanje uspravnog valjka–cilindra je<br />

⋆ \pstIIIDCylinder[Opcije](x,y,z){<strong>rad</strong>ijus}{visina} ⋆<br />

gdje je (x,y,z) centar donje osnove cilindra, a <strong>rad</strong>ijus poluprečnik osnova.<br />

Ako nedostaju koordinate tačke (x,y,z), onda se za centar uzima (0,0,0).<br />

Primjeri<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-2.5,-1.6)(3,4.7)<br />

\psset{Alpha=60}<br />

\pstThreeDCoor[<br />

xMax=3,yMax=2.5,zMax=4.8,<br />

linecolor=MidnightBlue,<br />

linewidth=1pt]<br />

\pstIIIDCylinder{1.5}{3.5}<br />

\end{pspicture}<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-2.5,-1.6)(3,4.7)<br />

\psset{Alpha=60}<br />

\pstThreeDCoor[<br />

xMax=3,yMax=2.5,zMax=4.8,<br />

linecolor=black,<br />

linewidth=.8pt]<br />

\pstIIIDCylinder[RotY=15,<br />

fillcolor=MidnightBlue!10,<br />

linecolor=black!80,<br />

fillstyle=solid]{1.5}{3.5}<br />

\end{pspicture}<br />

Broj izvodnica cilindra moguće je izmjeniti parametromincrement (engl.<br />

korak povećanja, prirast), koji precizira rastojanje izmed¯u njih. U narednom<br />

primjeru je pomoću opcije increment=0.4 nacrtan cilindar čije su izvodnice<br />

jako blizu, tako da ostavljaju dojam ‘neprekidnosti’ omotača.


4.2 Površi drugog reda 48<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-2.5,-1.6)(3,4.5)<br />

\psset{Alpha=60}<br />

\pstThreeDCoor[<br />

xMax=3,yMax=2.5,zMax=4.4,<br />

linecolor=black,<br />

linewidth=.8pt]<br />

\pstIIIDCylinder[<br />

linecolor=DarkOrchid!60,<br />

fillstyle=solid,<br />

increment=0.4]{1.5}{3}<br />

\psset{linecolor=black,<br />

linewidth=.8pt}<br />

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

\end{pspicture}<br />

Postoji još jedna naredba za crtanje cilindra. Njena sintaksa je slična<br />

prethodnoj definiciji:<br />

⋆ \psCylinder[Opcije](x,y,z){<strong>rad</strong>ijus}{visina} ⋆<br />

gdje svi parametri imaju isto značenje. Jedina razlika je u tome da omotač<br />

cilindra nacrtanog pomoću ove naredbe biva ispunjen bojom (isjenčen), a<br />

opcijom showInside=false|true se unutrašnjost cilindra može sakriti ili<br />

prikazati.<br />

z<br />

x<br />

x<br />

z<br />

y<br />

y<br />

\psset{SegmentColor={[cmyk]{0,0.53,0.38,0}}}<br />

\begin{pspicture}(-2.2,-1.8)(3,4)<br />

\psset{Alpha=60}<br />

\pstThreeDCoor[<br />

xMax=3,yMax=2.5,zMax=4,<br />

linecolor=RedOrange,<br />

linewidth=1pt]<br />

\psCylinder[RotY=-45]{1.5}{3.5}<br />

\end{pspicture}<br />

\vspace{2mm}<br />

\begin{pspicture}(-3.1,-1.6)(3,4)<br />

\psset{Alpha=60}<br />

\pstThreeDCoor[<br />

xMax=3,yMax=2.5,zMax=4,<br />

linecolor=RedOrange,<br />

linewidth=1pt]<br />

\psCylinder[RotY=15,RotZ=-25,RotX=45,<br />

showInside=false]{1.5}{3.5}<br />

\end{pspicture}


4.2 Površi drugog reda 49<br />

4.2.2 Paraboloid<br />

Definicija naredbe za crtanje paraboloida je:<br />

⋆ \pstParaboloid[Opcije]{visina}{<strong>rad</strong>ijus} ⋆<br />

gdje parametri visina i <strong>rad</strong>ijus zavise jedan od drugog–naime, <strong>rad</strong>ijus<br />

je poluprečnik kružnice na visini visina paraboloida.<br />

Po default-u je početna tačka paraboloida u koordinatnom početku, ali<br />

pomoću naredbe \pstThreeDPut paraboloid može biti premješten bilo gdje.<br />

U tablici ispod prikazani su parametri naredbe\pstParaboloid, sa mogućim<br />

vrijednostima.<br />

Naziv parametra Značenje Mog.vr.(Default)<br />

SegmentColor cmyk boja za segmente ({0.2,0.6,1,0})<br />

showInside prikaz unutrašnjosti false|true(true) 1<br />

increment rast. izmed¯u izvodnica dužina (10)<br />

Tablica 4.1: Parametri naredbe \pstParaboloid<br />

Parametar SegmentColor ima sintaksu SegmentColor={[cmyk]{c,m,y,k}}.<br />

Boja za segmente mora biti postavljena kao cmyk boja, i u suprotnom njene<br />

vrijednosti ne mogu biti pročitane. Bijela boja segmenata data je sa<br />

SegmentColor={[cmyk]{0,0,0,0}}.<br />

Primjeri<br />

z<br />

\psset{showInside=false,<br />

SegmentColor={[cmyk]{0.34,0.90,0,0.02}}}<br />

\begin{pspicture}(-2,-1)(2,5)<br />

\pstThreeDCoor[linecolor=black,<br />

xMax=2,yMax=2,zMax=5]<br />

\pstParaboloid{3.5}{1}<br />

\end{pspicture}<br />

x<br />

y<br />

1 Ove vrijednosti za MiKTeX ver.2.7 imaju drugačije značenje: false–prikazuje unutrašnjost,<br />

true–ne prikazuje unutrašnjost.


•<br />

4.2 Površi drugog reda 50<br />

x<br />

1.0 2.0<br />

-2.0<br />

-1.0<br />

z<br />

4.0<br />

3.0<br />

2.0<br />

-2.0 -1.0<br />

1.0<br />

-1.0<br />

1.0 2.0<br />

y<br />

\begin{pspicture}(-2.6,-1.5)(3,5.6)<br />

\pstThreeDCoor[linewidth=1pt,<br />

linecolor=MidnightBlue,<br />

xMax=3,yMax=3,zMax=5.8,<br />

xMin=-2,yMin=-2,<br />

IIIDticks]<br />

\pstThreeDPut(-1,1.5,1){<br />

\pstParaboloid[showInside=false,<br />

SegmentColor={<br />

[cmyk]{0.47,0.91,0,0.08}}]<br />

{4}{2}}<br />

\psset{linecolor=MidnightBlue}<br />

\pstThreeDLine[linewidth=1pt<br />

]{->}(0,0,2.2)(0,0,5.8)<br />

\pstThreeDDot[drawCoor=true]<br />

(-1,1.5,1)<br />

\end{pspicture}<br />

z<br />

5.0<br />

4.0<br />

3.0<br />

2.0<br />

1.0<br />

-1.0<br />

-1.0<br />

1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0<br />

x<br />

1.0<br />

\begin{pspicture}(-2.5,-4.7)(7,5.6)<br />

\psset{showInside=false}<br />

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

\multido{\rA=2.0+2.5,\rB=0.15+0.20}{5}{<br />

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

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

\end{pspicture}<br />

y


4.2 Površi drugog reda 51<br />

4.2.3 Sfera<br />

Definicija naredbe za crtanje sfere je:<br />

⋆ \pstThreeDSphere[Opcije](x,y,z){<strong>rad</strong>ijus} ⋆<br />

Tačka (x,y,z) je centar sfere. Moguće su sve opcije navedene u tablici 4.1,<br />

osim, naravno, opcija za parametar showInside.<br />

Primjeri<br />

z<br />

y<br />

\begin{pspicture}(-3.6,-1.8)(2,4.2)<br />

\psset{SegmentColor={[cmyk]<br />

{0.40,0.80,0.20,0}}}<br />

\pstThreeDCoor[xMin=-2,yMax=2,<br />

linecolor=black,<br />

linewidth=.8pt]<br />

\pstThreeDSphere(1,-1,2){1.6}<br />

\pstThreeDDot[dotstyle=pentagon*,<br />

drawCoor=true](1,-1,2)<br />

\end{pspicture}<br />

x<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3.6,-1.8)(2,4.2)<br />

\psset{SegmentColor={[cmyk]<br />

{0,0,0,0}}}<br />

\pstThreeDCoor[xMin=-2,yMax=2,<br />

linecolor=black,<br />

linewidth=.8pt]<br />

\pstThreeDSphere[<br />

increment=8](1,-1,2){1.6}<br />

\pstThreeDDot[dotstyle=pentagon*,<br />

drawCoor=true](1,-1,2)<br />

\end{pspicture}


Poglavlje 5<br />

Matematičke funkcije<br />

Ovo poglavlje je posvećeno crtanju grafika matematičkih funkcija dvije promjenljive.<br />

Postoje dvije naredbe, koje <strong>rad</strong>e slično kao odgovarajuće naredbe paketa<br />

pst-plot. One su:<br />

⋆ \psplotThreeD – koja služi za grafičko predstavljanje funkcija f(x,y)<br />

zadanih u eksplicitnom obliku;<br />

⋆ \parametricplotThreeD – kojom se grafički predstavljaju funkcije date<br />

u parametarskom obliku.<br />

5.1 Funkcije zadane eksplicitno<br />

Naredba \psplotThreeD za crtanje ekslicitno zadanih funkcija nema istu<br />

sintaksu kao odgovarajuća naredba pst-plot paketa, ali obje <strong>rad</strong>e na isti<br />

način. Naredba je definisana sa:<br />

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

Funkcija mora biti zapisana PostScript kodom, tj. inverznom poljskom<br />

notacijom (IPN). Takod¯er, jedini validni nazivi promjenljivih su x i y. (Na<br />

primjer: {x dup mul y dup mul add sqrt} je PostScript kod funkcije<br />

date sa f(x,y) = √ x 2 + y 2 .)<br />

U tablici 5.1 prikazani su parametri naredbe \psplotThreeD, kao i njihove<br />

moguće i default vrijednosti. Naredba \psplotThreeD ima iste opcije<br />

za parametar plotstyle kao i naredba \psplot, dok su opcije plotpoints<br />

parametra sada podijeljene na opcije za promjenljivu x i opcije za promjenljivu<br />

y.


5.1 Funkcije zadane eksplicitno 53<br />

Naziv parametra Moguće vrijednosti Default<br />

dots<br />

line<br />

polygon<br />

plotstyle curve none<br />

ecurve<br />

ccurve<br />

none<br />

showpoints false|true false<br />

xPlotpoints 25<br />

yPlotpoints 25<br />

xLines<br />

drawStyle yLines xLines<br />

xyLines<br />

yxLines<br />

hiddenLine false|true false<br />

Tablica 5.1: Parametri naredbe \psplotThreeD<br />

Na sljedećoj slici prikazan je grafik funkcije f(x,y) = (5x − y)e −(x2 +y 2) .<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-6.5,-2.8)(6,4)<br />

\psset{Alpha=30,Beta=20}<br />

\pstThreeDCoor[xMax=4,yMax=4.5,zMax=3.5,linecolor=black!60,<br />

linewidth=.8pt]<br />

\psplotThreeD[linewidth=.5pt,plotstyle=line,drawStyle=xLines,<br />

xPlotpoints=40,yPlotpoints=40](-3,3)(-3,3)<br />

{1 2.718183 x x mul y y mul add exp div x 5 mul y sub mul}<br />

\end{pspicture}


5.1 Funkcije zadane eksplicitno 54<br />

U ovom primjeru odabrane su opcijeplotstyle=line idrawStyle=xLines.<br />

Kroz naredne primjere će biti ilustovane i druge opcije parametraplotstyle.<br />

Opcijom plotstyle=curve postiže se glatkoća grafika.<br />

x<br />

y<br />

z<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

•<br />

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

x<br />

y<br />

z<br />

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

x<br />

y<br />

z<br />

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


5.1 Funkcije zadane eksplicitno 55<br />

Parametrima xPlotpoints i yPlotpoints se bira broj tačaka za obje<br />

promjenljive, koji odred¯uje broj linija krive koje će se crtati. Te linije mogu<br />

biti nacrtane na četiri načina, koji se precizira parametrom drawStyle. Opcije<br />

parametra drawStyle su:<br />

⋆ xLines – linije se crtaju u smjeru x ose (default),<br />

⋆ yLines – linije se crtaju u smjeru y ose,<br />

⋆ xyLines – linije se prvo crtaju u smjeru x, a zatim u smjeru y ose,<br />

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

U narednim primjerima nacrtan je grafik funkcije<br />

f(x,y) = sin x sin y sin(x + y)<br />

(⋆)<br />

te ilustrovane razne opcije za parametar drawStyle.<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-6.75,-3.75)(6,4)<br />

\pstThreeDCoor[xMax=5,yMax=5,zMax=3.5,linewidth=.8pt,<br />

linecolor=black!60]<br />

\psplotThreeD[linewidth=.8pt,plotstyle=curve,drawStyle=xLines,<br />

yPlotpoints=50,xPlotpoints=50](-4,4)(-4,4)<br />

{x 57 mul sin y 57 mul sin mul x y add 57 mul sin mul}<br />

\end{pspicture}


5.1 Funkcije zadane eksplicitno 56<br />

z<br />

x<br />

y<br />

Slika 5.4: Grafik funkcije (⋆) sa opcijom drawStyle=yLines<br />

z<br />

x<br />

y<br />

Slika 5.5: Grafik funkcije (⋆) sa opcijom drawStyle=xyLines<br />

Crtanje trodimenzionalnih funkcija sa krivuljama koje su transparentne<br />

(prozirne) čini teško vidljivim tačke koje se nalaze ispred ili iza drugih. Zbog<br />

toga, \psplotThreeD naredba ima opcioni parametar hiddenLine, koji <strong>rad</strong>i<br />

na način da prostor izmed¯u svake dvije linije krive ispuni bijelom bojom<br />

(default).<br />

U sljedećim primjerima ilustrovana je primjena ovog parametra na primjeru<br />

funkcije<br />

(<br />

f(x,y) = 10 x 3 + xy 4 − x )<br />

e −(x2 +y 2 ) + e<br />

−((x−1.225) 2 +y 2 ) (⋆⋆)<br />

5


5.1 Funkcije zadane eksplicitno 57<br />

z<br />

x<br />

y<br />

\begin{pspicture}(-6.8,-3.2)(6,4.4)<br />

\psset{Beta=15} \psscalebox{.8}{<br />

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

\psplotThreeD[plotstyle=curve,hiddenLine=true,drawStyle=xLines,<br />

yPlotpoints=50,xPlotpoints=50,linewidth=1pt,linecolor=DarkViolet]<br />

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

2.729 x dup mul y dup mul add neg exp mul<br />

2.729 x 1.225 sub dup mul y dup mul add neg exp add}}<br />

\end{pspicture}<br />

z<br />

x<br />

y<br />

Slika 5.6: Grafik funkcije (⋆⋆) sa opcijamadrawStyle=yLines ihiddenLine=true


5.1 Funkcije zadane eksplicitno 58<br />

5.1.1 Primjeri<br />

z<br />

x<br />

y<br />

f (x,y) = (5x − y)e −(x2 +y 2 )<br />

\begin{pspicture}(-6.5,-2.6)(6,3.25)<br />

\psset{Beta=25,fillstyle=g<strong>rad</strong>ient,g<strong>rad</strong>begin=DarkBlue,g<strong>rad</strong>end=DarkViolet}<br />

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

\psplotThreeD[linewidth=.5pt,plotstyle=curve,drawStyle=xLines,<br />

xPlotpoints=40,yPlotpoints=40](-3,3)(-3,3)<br />

{1 2.718183 x x mul y y mul add exp div x 5 mul y sub mul}<br />

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

\end{pspicture}<br />

z<br />

x<br />

y<br />

f (x,y) = 4 − x2 − y 2<br />

e x2 +y 2<br />

\begin{pspicture}(-6.7,-3)(6,3.7)<br />

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

\psscalebox{.8}{\psplotThreeD[plotstyle=curve,drawStyle=xyLines,<br />

linecolor=DarkOrchid,yPlotpoints=50,xPlotpoints=50](-4,4)(-4,4)<br />

{4 x x mul sub y y mul sub 1 2.73 x x mul y y mul add exp div mul}}<br />

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

{e^{x^{2}+y^{2}}}}$}<br />

\end{pspicture}


5.1 Funkcije zadane eksplicitno 59<br />

z<br />

x<br />

y<br />

f (x,y) = 12 sin √ x 2 + y 2<br />

√<br />

x2 + y 2<br />

\begin{pspicture}(-6.8,-3.1)(6,3.4)<br />

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

\psscalebox{0.2}{\psplotThreeD[plotstyle=curve,drawStyle=xLines,<br />

xPlotpoints=75,yPlotpoints=75,linewidth=3.5pt,linecolor=DarkBlue]<br />

(-20,20)(-20,20){x x mul y y mul add sqrt 57 mul sin 12 mul x x<br />

mul y y mul add sqrt div}}<br />

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

\frac{12\sin\sqrt{x^{2}+y^{2}}}{\sqrt{x^{2}+y^{2}}}}$}<br />

\end{pspicture}<br />

z<br />

x<br />

y<br />

f (x,y) = 5 4 sin √ x 2 + y 2<br />

\begin{pspicture}(-6.6,-2.9)(6,3.4)<br />

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

\psscalebox{.2}{\psplotThreeD[plotstyle=curve,drawStyle=yLines,<br />

yPlotpoints=70,xPlotpoints=70,linewidth=3.5pt,linecolor=DarkBlue]<br />

(-18,18)(-18,18){x x mul y y mul add sqrt 57 mul sin 1.25 mul}}<br />

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

\sin\sqrt{x^{2}+y^{2}}}$}<br />

\end{pspicture}


5.1 Funkcije zadane eksplicitno 60<br />

x<br />

y<br />

z<br />

f (x,y)=x 2 −y 2<br />

\begin{pspicture}(-7,-2.9)(6,3.4)<br />

\psset{Alpha=25,Beta=15}<br />

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

\psplotThreeD[plotstyle=curve,drawStyle=xyLines,linecolor=DarkOrchid,<br />

yPlotpoints=50,xPlotpoints=50,linewidth=.8pt](-1.5,1.5)(-1.5,1.5)<br />

{x x mul y y mul sub}<br />

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

\end{pspicture}<br />

x<br />

y<br />

z<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

f (x,y) = 5 2 − 2x2 − y 2<br />

\begin{pspicture}(-6.7,-2.8)(6,4)<br />

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

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

\psplotThreeD[plotstyle=dots,drawStyle=xyLines,linecolor=DarkOrchid,<br />

xPlotpoints=50,yPlotpoints=50,linewidth=.7pt](-1.25,1.25)(-1.25,1.25)<br />

{2.5 x x mul 2 mul sub y y mul sub}<br />

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

\end{pspicture}


5.2 Funkcije zadane parametarski 61<br />

5.2 Funkcije zadane parametarski<br />

Za grafičko predstavljanje trodimenzionalnih krivih i površi datih u parametarskom<br />

obliku koristi se naredba<br />

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

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

x = f(t,u)<br />

y = f(t,u)<br />

z = f(t,u)<br />

Jedini mogući nazivi za parametre su t i u, sa intervalima definisanosti<br />

(t1,t2) i(u1,u2). Funkcijex,yizse u naredbi navode zapisane PostScript<br />

kodom, odvojene med¯usobno samo praznim prostorom. Redoslijed navod¯enja<br />

funkcija nije važan.<br />

Parametarske funkcije krive u prostoru zavise samo od jednog parametra,<br />

pa se za predstavljanje krivih koristi naredba<br />

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

a naziv za parametar mora biti t (default). Med¯utim, isto se može postići i<br />

upotrebom prve naredbe uz interval za parametar u (0,0).<br />

Opcije za naredbu \parametricplotThreeD su iste kao i opcije naredbe<br />

\psplotThreeD, i prikazane su u tablici 5.1.<br />

U sljedećem primjeru nacrtana je cilindrična spirala poluprečnika 2.5, čije<br />

su parametarske jednačine:<br />

x = r cos t<br />

y = r sin t<br />

z = t/600<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3.3,-2)(3.2,5.4)<br />

\pstThreeDCoor[<br />

linecolor=black!75,<br />

linewidth=0.8pt,<br />

zMax=5.5]<br />

\parametricplotThreeD[<br />

linecolor=NiceRed,<br />

xPlotpoints=200,<br />

linewidth=1.7pt,<br />

plotstyle=curve](0,2160)<br />

{2.5 t cos mul<br />

2.5 t sin mul<br />

t 600 div}<br />

\end{pspicture}


5.2 Funkcije zadane parametarski 62<br />

U prethodnom primjeru je vrijednost parametra t za z koordinatu podijeljena<br />

sa 600. Razlog za to je taj što su vrijednosti parametratustepenima,<br />

a interval definisanosti (0 ◦ , 2160 ◦ ), te bi dužina spirale bila ogromna.<br />

Umjesto uptrebe naredbe\psplotThreeD se brojne matematičke funkcije<br />

mogu predstavljati pomoću naredbe \parametricplotThreeD, ako su poznate<br />

njihove parametarske jednačine. Isto tako je moguće, na primjer, umjesto<br />

upotrebe \pstThreeDSphere naredbe nacrtati sferu pomoću njenih parametarskih<br />

jednačina. Parametarske jednačine sfere se mogu zadati na dva<br />

načina:<br />

x = r cos t · sin u<br />

y = r cos t · cosu<br />

z = r sin t<br />

(⋆)<br />

x = r cos u · sin t<br />

y = r cos u · cos t<br />

z = r sin u<br />

(⋆⋆)<br />

Njihovim primjenama se ne dobijaju isti grafici, što ilustruje sljedeći primjer.<br />

x<br />

x<br />

z<br />

z<br />

y<br />

y<br />

\begin{pspicture}(-3.2,-2.5)(2.8,3.2)<br />

\pstThreeDCoor[<br />

xMax=3,yMax=3,zMax=3,<br />

linecolor=black!75,<br />

linewidth=1pt]<br />

\parametricplotThreeD[<br />

linecolor=NiceRed,<br />

plotstyle=curve,<br />

linewidth=1.15pt,<br />

yPlotpoints=20](0,360)(0,360)<br />

{2 t cos mul u sin mul<br />

2 t cos mul u cos mul<br />

2 t sin mul}<br />

\end{pspicture}<br />

\begin{pspicture}(-3.2,-2.5)(2.8,3.5)<br />

\pstThreeDCoor[<br />

xMax=3,yMax=3,zMax=3,<br />

linecolor=black!75,<br />

linewidth=1pt]<br />

\parametricplotThreeD[<br />

linecolor=NiceRed,<br />

linewidth=1.15pt,<br />

plotstyle=curve,<br />

yPlotpoints=20](0,360)(0,360)<br />

{2 u cos mul t sin mul<br />

2 u cos mul t cos mul<br />

2 u sin mul}<br />

\end{pspicture}<br />

Obje \parametricplotThreeD naredbe moguće je upotrijebiti zajedno<br />

unutar istog pspicture okruženja, a rezultat je prikazan na sljedećem primjeru.


5.2 Funkcije zadane parametarski 63<br />

x<br />

z<br />

y<br />

\begin{pspicture}(-3.2,-3)(2.8,3.6)<br />

\pstThreeDCoor[xMax=3,yMax=3,zMax=3,<br />

linecolor=black!75,linewidth=1pt]<br />

\psset{<br />

linecolor=NiceRed,yPlotpoints=20,<br />

plotstyle=curve,linewidth=1.15pt}<br />

\parametricplotThreeD(0,360)(0,360)<br />

{2 t cos mul u sin mul<br />

2 t cos mul u cos mul<br />

2 t sin mul}<br />

\parametricplotThreeD(0,360)(0,360)<br />

{2 u cos mul t sin mul<br />

2 u cos mul t cos mul<br />

2 u sin mul}<br />

\end{pspicture}<br />

5.2.1 Primjeri<br />

Plückerov konoid<br />

Plücker-ovi konoidi su pravčaste plohe (plohe koje nastaju pomjeranjem<br />

pravca duž neke krivulje) koje zadovoljavaju sljedeće parametarske jednačine:<br />

x(u,v) = v cos u<br />

y(u,v) = v sin u k ∈ N, (u,v) ∈ [0, 2π] 2<br />

z(u,v) = 3 sin ku<br />

Na sljedećoj slici prikazan je Plücker-ov konoid za k = 5.<br />

z<br />

x<br />

y<br />

\psset{xunit=0.9,yunit=0.7}<br />

\begin{pspicture}(-3.5,-5)(3,5)<br />

\psset{Alpha=125,Beta=65}<br />

\pstThreeDCoor[zMax=5.5,<br />

linecolor=black!75,<br />

linewidth=0.8pt]<br />

\parametricplotThreeD[<br />

linecolor=violet,<br />

plotstyle=curve,<br />

linewidth=0.2pt,<br />

yPlotpoints=40<br />

](0,360)(0,360)<br />

{t cos u mul 120 div<br />

t sin u mul 120 div<br />

t 5 mul sin 3 mul}<br />

\end{pspicture}


5.2 Funkcije zadane parametarski 64<br />

Torus<br />

Torus je ploha koja nastaje rotacijom kružnice poluprečnika r 1 oko ose koja<br />

je od njenog središta udaljena za r 2 . Ako kružnica leži u xz ravni i rotira se<br />

oko z ose, parametarske jednačine torusa su:<br />

x(u,v) = (r 2 + r 1 cos v) cos u<br />

y(u,v) = (r 2 + r 1 cos v) sin u (u,v) ∈ [0, 2π] 2<br />

z(u,v) = r 1 sin v<br />

Torus sa poluprečnicima r 1 = 1 i r 2 = 1.7 nad područjem [0, 3π/2] × [0, 2π]<br />

prikazan je na slici ispod.<br />

z<br />

y<br />

x<br />

\begin{pspicture}(-3.2,-2.6)(3,4.2)<br />

\psset{Alpha=145,Beta=30}<br />

\pstThreeDCoor[<br />

xMax=3.75,zMax=3.5,<br />

linecolor=black!75,<br />

linewidth=0.8pt]<br />

\parametricplotThreeD[<br />

linecolor=MidnightBlue,<br />

plotstyle=curve,<br />

yPlotpoints=60,<br />

linewidth=.6pt](0,270)(0,360)<br />

{u cos 1.7 add t cos mul<br />

u cos 1.7 add t sin mul<br />

u sin}<br />

\end{pspicture}<br />

Evo primjera još jedne slične plohe.<br />

x<br />

z<br />

y<br />

\psset{unit=1.25}<br />

\begin{pspicture}(-2.8,-2.4)(3,3)<br />

\psset{Alpha=40,Beta=60}<br />

\pstThreeDCoor[<br />

xMax=3,yMax=3,zMax=5,<br />

linecolor=black!75,<br />

linewidth=0.8pt]<br />

\parametricplotThreeD[<br />

linecolor=thistle,<br />

plotstyle=curve,<br />

yPlotpoints=60,<br />

linewidth=.5pt](0,360)(0,360)<br />

{t sin t cos u sin add u cos}<br />

\end{pspicture}


5.2 Funkcije zadane parametarski 65<br />

Njene parametarske jednačine su:<br />

x(u,v) = sin u<br />

y(u,v) = cosu + sinv (u,v) ∈ [0, 2π] 2<br />

z(u,v) = cosv<br />

Helikoid<br />

Helikoid je, takod¯er, pravčasta ploha koja nastaje istovremenom rotacijom<br />

i translacijom neke dužine. Kraj te dužine se kreće po osi okomitoj na tu<br />

dužinu, a drugi kraj rotira oko te iste ose. Parametarske jednačine helikoida<br />

su:<br />

x(u,v) = sinhucos v<br />

y(u,v) = sinhusin v u ∈ R, v ∈ [0, 2π]<br />

z(u,v) = v<br />

z<br />

x<br />

y<br />

\psset{unit=0.85}<br />

\begin{pspicture}(-4,-7)(3,6.2)<br />

\psset{Beta=36}<br />

\pstThreeDCoor[<br />

xMin=-2,yMin=-2,zMin=-6,<br />

xMax=5,yMax=5,zMax=7,<br />

linecolor=black!80,<br />

linewidth=0.8pt]<br />

\parametricplotThreeD[<br />

linecolor=NiceRed,<br />

plotstyle=curve,<br />

yPlotpoints=300,<br />

linewidth=.5pt](-2,2)(-6,6)<br />

{2.71 t exp 2.71 -1 t mul exp<br />

sub 2 div u 57 mul cos mul<br />

2.71 t exp 2.71 -1 t mul exp<br />

sub 2 div u 57 mul sin mul<br />

u}<br />

\end{pspicture}


5.2 Funkcije zadane parametarski 66<br />

Hiperboloid<br />

Parametarske jednačine jednostranog hiperboloida su:<br />

a dvostranog:<br />

x(u,v) = coshucos v<br />

y(u,v) = coshusin v u ∈ R, v ∈ [0, 2π]<br />

z(u,v) = sinhu<br />

x(u,v) = sinhucos v<br />

y(u,v) = 1/2 sinh u sin v u ∈ R, v ∈ [0, 2π]<br />

z(u,v) = ± cosh u<br />

Na sljedećoj slici prikazan je dvostrani hiperboloid.<br />

x<br />

z<br />

y<br />

\psset{unit=0.85}<br />

\begin{pspicture}(-4,-6.8)(3,7.1)<br />

\pstThreeDCoor[<br />

xMin=-4,yMin=-4,zMin=-5.5,<br />

xMax=4,yMax=4,zMax=5.5,<br />

linecolor=black!80,<br />

linewidth=0.8pt]<br />

\psset{linecolor=MidnightBlue,<br />

plotstyle=curve,<br />

yPlotpoints=100,<br />

linewidth=.5pt}<br />

\parametricplotThreeD<br />

(-2.3,2.3)(0,360)<br />

{2.71 t exp 2.71 -1 t mul exp<br />

sub 2 div u cos mul<br />

2.71 t exp 2.71 -1 t mul exp<br />

sub 4 div u sin mul<br />

2.71 t exp 2.71 -1 t mul exp<br />

add 2 div}<br />

\parametricplotThreeD<br />

(-2.3,2.3)(-180,180)<br />

{2.71 t exp 2.71 -1 t mul exp<br />

sub 2 div u cos mul<br />

2.71 t exp 2.71 -1 t mul exp<br />

sub 4 div u sin mul<br />

2.71 t exp 2.71 -1 t mul exp<br />

add 2 div -1 mul}<br />

\end{pspicture}


5.2 Funkcije zadane parametarski 67<br />

Vivianijeva krivulja<br />

Viviani-jeva krivulja je kriva čije su parametarske jednačine:<br />

x(t) = 1 + cost<br />

y(t) = sint t ∈ [−2π, 2π]<br />

z(t) = 2 sin t 2<br />

Njen grafik prikazan je na sljedećoj slici.<br />

z<br />

y<br />

x<br />

\psset{xunit=1.5,yunit=1.4,<br />

Alpha=165,Beta=38}<br />

\begin{pspicture}(-2.2,-3)(3,3.4)<br />

\pstThreeDCoor[<br />

xMin=-2,yMin=-3,zMin=-3.25,<br />

xMax=2.5,yMax=2.5,zMax=3.5,<br />

linecolor=black!80,<br />

linewidth=.8pt]<br />

\psset{linecolor=DarkBlue,<br />

plotstyle=curve,<br />

linewidth=1.7pt}<br />

\parametricplotThreeD(-360,360)<br />

{t cos 1 add<br />

t sin<br />

t 2 div sin 2 mul}<br />

\end{pspicture}<br />

Interesantna je činjenica da je Vivianijeva krivulja prodorna kriva kugle<br />

sa centrom u koordinatnom početku i poluprečikom r = 2 i cilindra čija je<br />

dužina MN osa sa krajnjim tačkama M(1, 0, −2) i N(1, 0, 2), a poluprečnik<br />

osnovice r = 2.<br />

Parametarske jednačine opisanog cilindra su:<br />

x(u,v) = cosu + 1<br />

y(u,v) = sinu (u,v) ∈ [0, 2π] × [−2, 2]<br />

z(u,v) = v<br />

a grafik je predstavljen na slici zajedno sa Vivianijevom krivuljom.<br />

Takod¯er su prikazani kugla sa centrom u koordinatnom početku, poluprečnika<br />

2, cilindar i Vivianijeva krivulja na istoj slici.


5.2 Funkcije zadane parametarski 68<br />

z<br />

y<br />

x<br />

\psset{xunit=1.5,yunit=1.4,<br />

Alpha=165,Beta=38}<br />

\begin{pspicture}(-2.2,-3.25)(3,3.65)<br />

\pstThreeDCoor[<br />

xMin=-2,yMin=-3,zMin=-3.25,<br />

xMax=2.5,yMax=2.5,zMax=3.5,<br />

linecolor=black!80,<br />

linewidth=.8pt]<br />

\psset{linecolor=DarkOrchid!90,<br />

plotstyle=curve,<br />

yPlotpoints=30,<br />

linewidth=1.25pt}<br />

\parametricplotThreeD(0,360)(-2,2)<br />

{t cos 1 add t sin u}<br />

\psset{linecolor=DarkBlue,<br />

plotstyle=curve,<br />

linewidth=1.7pt}<br />

\parametricplotThreeD(-360,360)<br />

{t cos 1 add<br />

t sin<br />

t 2 div sin 2 mul}<br />

\end{pspicture}<br />

z<br />

y<br />

x<br />

\psset{xunit=1.5,yunit=1.4,<br />

Alpha=165,Beta=38}<br />

\begin{pspicture}(-2.4,-3.65)(3,4)<br />

\pstThreeDCoor[<br />

xMin=-2,yMin=-3,zMin=-3.25,<br />

xMax=2.5,yMax=2.5,zMax=3.5,<br />

linecolor=black!80,<br />

linewidth=.8pt]<br />

\psset{plotstyle=curve,<br />

linecolor=DarkOrchid!90}<br />

\parametricplotThreeD[<br />

yPlotpoints=70,<br />

linewidth=0.25pt](0,360)(0,360)<br />

{2 t cos mul u sin mul<br />

2 t cos mul u cos mul<br />

2 t sin mul}<br />

\parametricplotThreeD[<br />

yPlotpoints=30,<br />

linewidth=1.25pt](0,360)(-2,2)<br />

{t cos 1 add t sin u}<br />

\parametricplotThreeD[<br />

linecolor=DarkBlue,<br />

linewidth=1.7pt](-360,360)<br />

{t cos 1 add t sin t 2 div sin 2 mul}<br />

\end{pspicture}


Dodatak A<br />

Grafičko predstavljanje<br />

datoteka podataka<br />

Grafičko predstavljanje datoteka podataka koje podržavaju <strong>3D</strong> koordinate omogućava<br />

pst-3dplot paket, upotrebom naredbi, veoma sličnih odgovarajućim naredbama<br />

pst-plot paketa. U narednom odjeljku su, bez ozbiljnijeg pristupa,<br />

pomenute naredbe definisane.<br />

A.1 Naredbe<br />

Grafičko predstavljanje datoteka podataka koje podržavaju <strong>3D</strong> koordinate<br />

vrši se pomoću naredbi:<br />

⋆<br />

\fileplotThreeD[Opcije]{datoteka}<br />

\dataplotThreeD[Opcije]{datoteka}<br />

\listplotThreeD[Opcije]{datoteka}<br />

⋆<br />

Za njihovo korištenje potrebna je datoteka podataka, unutar koje podaci,<br />

po dogovoru, moraju biti predstavljeni nekim od sljedećih načina:<br />

0.0000 1.0000 0.0000<br />

-0.4207 0.9972 0.0191<br />

...<br />

0.0000, 1.0000, 0.0000<br />

-0.4207, 0.9972, 0.0191<br />

...<br />

( 0.0000,1.0000,0.0000)<br />

(-0.4207,0.9972,0.0191)<br />

...


A.1 Naredbe 70<br />

{ 0.0000,1.0000,0.0000}<br />

{-0.4207,0.9972,0.0191}<br />

...<br />

Kako će podaci biti grafički prikazani, zavisi od izbora opcije za parametar<br />

plotstyle, a moguće su sljedeće vrijednosti: dots, line, polygon, curve,<br />

ccurve, ecurve.<br />

Više o naredbama za grafičko predstavljanje datoteka podataka moguće je<br />

naći u djelu <strong>3D</strong> plots: PST-3dplot, A PSTricks package for drawing 3d objects,<br />

v1.83 – autor Herbert Voß.


Dodatak B<br />

Paket PST-light3d<br />

pst-light3d je pstricks paket koji omogućava dodavanje trodimenzionalnih<br />

efekata na tekstu i dvodimenzionalnim pstricks graficima. Trodimenzinalni<br />

efekti se postižu upotrebom dvije osnovne pst-ligh3d naredbe:<br />

⋆ \PstLightThreeDText<br />

⋆ \PstLightThreeDGraphic<br />

U narednim odjeljcima će, kroz brojne primjere, biti ilustrovan način <strong>rad</strong>a svake<br />

od njih, uz dodatnu upotrebu odred¯enih parametara.<br />

B.1 Naredba \PstLightThreeDText<br />

Naredba je definisana sa<br />

⋆ \PstLightThreeDText[Opcije]{Tekst} ⋆<br />

i bit će ilustrovana kroz naredne primjere.<br />

B.1.1<br />

Primjeri<br />

Parametar linestyle<br />

\DeclareFixedFont{\Bf}{T1}{ptm}{b}{n<br />

}{2.5cm}<br />

\PstLightThreeDText[fillstyle=solid,<br />

fillcolor=lavender]{\Bf Tekst<br />

}\\[0.5cm]<br />

\PstLightThreeDText[fillcolor=<br />

lavender,fillstyle=solid,linestyle<br />

=none]{\Bf Tekst}%


B.1 Naredba \PstLightThreeDText 72<br />

Parametar LightThreeDAngle<br />

\psset{linestyle=none,fillstyle=solid<br />

,fillcolor=DarkViolet}<br />

\DeclareFixedFont{\Bf}{T1}{ptm}{b}{n<br />

}{2.5cm}<br />

\PstLightThreeDText[LightThreeDAngle<br />

=0]{\Bf Tekst}\\[0.5cm]<br />

\PstLightThreeDText[LightThreeDAngle<br />

=90]{\Bf Tekst}<br />

Parametri LightThreeDXLength i LightThreeDYLength<br />

\psset{linestyle=none,fillstyle=solid<br />

,fillcolor=thistle}<br />

\DeclareFixedFont{\Bf}{T1}{ptm}{b}{n<br />

}{2.5cm}<br />

\PstLightThreeDText[<br />

LightThreeDXLength=0.5,<br />

LightThreeDYLength=-1]{\Bf Tekst<br />

}\\[1.2cm]<br />

\PstLightThreeDText[<br />

LightThreeDXLength=-0.5,<br />

LightThreeDYLength=0.5]{\Bf Tekst<br />

}%<br />

Parametar LightThreeDColorPsCommand<br />

\psset{linestyle=none,fillstyle=solid,<br />

fillcolor=thistle}<br />

\DeclareFixedFont{\Sf}{T1}{phv}{b}{n}{3<br />

cm}<br />

\PstLightThreeDText[<br />

LightThreeDColorPsCommand=1.2<br />

divsetgray]{\Sf 752}\\[0.5cm]<br />

\PstLightThreeDText[<br />

LightThreeDColorPsCommand=2.5 div<br />

setgray]{\Sf 752}%


B.2 Naredba \PstLightThreeDGraphic 73<br />

\psset{linestyle=none,fillstyle=solid}<br />

\DeclareFixedFont{\Rm}{T1}{ptm}{m}{n}{3<br />

cm}<br />

\PstLightThreeDText[fillcolor=my_violet,<br />

LightThreeDColorPsCommand=2.5<br />

div 0.7 exch 0.8 sethsbcolor]{\Rm<br />

687}\\[0.5cm]<br />

\PstLightThreeDText[fillcolor=DarkGreen,<br />

LightThreeDColorPsCommand=2<br />

div 0.5 exch 0.2 exch sethsbcolor]{\Rm<br />

687}<br />

\DeclareFixedFont{\Rmb}{T1}{ptm}{m}{n}{3.5cm}<br />

\PstLightThreeDText[linestyle=none,fillstyle=solid,fillcolor=MidnightBlue,<br />

LightThreeDColorPsCommand=1.6 div 0.55 exch 0.7 exch sethsbcolor]{\Rmb<br />

PSTricks}<br />

B.2 Naredba \PstLightThreeDGraphic<br />

Naredba je definisana sa<br />

⋆ \PstLightThreeDGraphic[Opcije]{pst-plot naredbe} ⋆<br />

gdje se u dijelu za opcije koriste svi već pomenuti parametri. Ova naredba<br />

je, takod¯er, ilustrovana kroz primjere.<br />

B.2.1<br />

Primjeri<br />

\psset{unit=0.5cm,linestyle=solid,<br />

fillstyle=none}<br />

\begin{pspicture}(-0.25,-4.5)(2.25,4)<br />

\PstLightThreeDGraphic[<br />

LightThreeDXLength=0.4,<br />

LightThreeDColorPsCommand=<br />

1.8 div 0.9 exch 0.4 exch sethsbcolor]<br />

{\pscurve(0,2)(1,-3)(2,2)(4,3)(7,0)}<br />

\end{pspicture}


B.2 Naredba \PstLightThreeDGraphic 74<br />

\psset{unit=0.5cm,linestyle=solid,<br />

fillstyle=none}<br />

\begin{pspicture}(-0.25,-4.5)(2.25,4)<br />

\PstLightThreeDGraphic[<br />

LightThreeDXLength=0.8,<br />

LightThreeDColorPsCommand=<br />

3 div 0.82 exch 0.9 exch sethsbcolor]<br />

{\pspolygon(0,2)(1,-3)(2,0)(4,1)(6,1)(7,3)}<br />

\end{pspicture}<br />

\psset{unit=0.5cm,linestyle=solid,<br />

fillstyle=none}<br />

\begin{pspicture}(-0.25,-4.5)(2.25,4)<br />

\PstLightThreeDGraphic[<br />

LightThreeDXLength=0.8,<br />

LightThreeDColorPsCommand=<br />

3 div 0.6 exch 0.9 exch sethsbcolor]<br />

{\psellipse(3,0)(1.5,3)}<br />

\end{pspicture}<br />

\SpecialCoor \def\PstCoordinates{}<br />

\Multido{\nDistance=0.00+0.02,\iAngle=0+20<br />

}{200}{\edef\PstCoordinates{<br />

\PstCoordinates(\nDistance;\iAngle)}}<br />

\psset{unit=0.5cm}<br />

\begin{pspicture}(-4,-4.8)(4.4,4.6)<br />

\PstLightThreeDGraphic[LightThreeDLength=0.2,<br />

LightThreeDColorPsCommand=<br />

2.8 div 0.8 exch 0.4 exch sethsbcolor]<br />

{\expandafter\pscurve\PstCoordinates}<br />

\end{pspicture}<br />

\SpecialCoor \def\PstCoordinates{}<br />

\Multido{\nDistance=0.00+0.02,\iAngle=0+20<br />

}{200}{\edef\PstCoordinates{<br />

\PstCoordinates(\nDistance;\iAngle)}}<br />

\psset{unit=0.5cm}<br />

\begin{pspicture}(-4,-5.45)(4.4,5.25)<br />

\PstLightThreeDGraphic[LightThreeDLength=0.2,<br />

LightThreeDColorPsCommand=<br />

/Counter Counter 0.0001 add def 2 mul Counter<br />

exch 0.8 exch sethsbcolor,<br />

LightThreeDAngle=30]{\pstVerb{/Counter 0 def}<br />

\expandafter\pscurve\PstCoordinates}<br />

\end{pspicture}


B.2 Naredba \PstLightThreeDGraphic 75<br />

sin 10x<br />

0.5 cos 30x<br />

1.2<br />

1.0<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0.0<br />

-0.2<br />

-0.4<br />

-0.6<br />

-0.8<br />

-1.0<br />

-1.2<br />

0 0.2 0.4 0.6 0.8 1.0<br />

x<br />

\psset{xunit=8cm,yunit=3cm}<br />

\begin{pspicture}(-0.45,-1.6)(1,1.4)<br />

\psaxes[Dx=0.2,Oy=-1.2,Dy=0.2,tickstyle=top,<br />

axesstyle=frame](0,-1.2)(1,1.2)<br />

\psset{plotpoints=500,LightThreeDXLength=0.3,<br />

LightThreeDYLength=-0.3}<br />

\PstLightThreeDGraphic[LightThreeDColorPsCommand=1 div 0.9 exch<br />

0.2 exch sethsbcolor]{\psplot{0}{0.95}{x 10 mul 57.296 mul sin}}<br />

\PstLightThreeDGraphic[LightThreeDColorPsCommand=1.6 div 0.55 exch<br />

0.7 exch sethsbcolor]{\psplot{0}{0.95}{x 30 mul 57.296 mul cos 2<br />

div}}<br />

\rput(-0.3,0.1){\thistle{$\sin 10x$}}<br />

\rput(-0.3,-0.1){\MidnightBlue{$0.5\cos 30x$}}<br />

\rput(0.5,-1.5){$x$}<br />

\end{pspicture}


Dodatak C<br />

Ostali PSTricks <strong>3D</strong> paketi<br />

Kao što je već na samom početku pomenuto, postoji nekoliko pstricks paketa<br />

za crtanje trodimenzionalnih grafičkih objekata. Ovdje će biti pomenuti neki<br />

od njih, dok se o ostalima više može naći na web adresi homepage stranice<br />

pstricks-a:<br />

⋆ http://tug.org/PSTricks/,<br />

ili konkretno za pakete:<br />

⋆ http://tug.org/PSTricks/main.cgi?file=packages.<br />

Na ovoj adresi moguće je vršiti download svih dostupnih paketa, kao i odgovarajuće<br />

dokumentacije koja sadrži sva potrebna uputstva za korištenje.<br />

C.1 pst-solides3d<br />

Paket je dostupan i na adresi<br />

⋆ http://syracuse.eu.org/syracuse/pstricks/pst-solides3d/.<br />

Pomoću ovog paketa moguće je grafičko predstavljanje definisanih geometrijskih<br />

tijela, kao i korištenje već postojećih (predefinisanih unutar samog<br />

paketa, koje se u dokument uključuju parametrom object=vrsta objekta).<br />

Geometrijska tijela mogu biti prikazana sa ili bez skrivenih ivica, čije boje<br />

mogu varirati sa efektima sjenčenja.<br />

Posebno je značajan za predstavlja-nje matematičkih funkcija. Pored¯enja<br />

<strong>rad</strong>i, pomoću pst-solides3d paketa moguće je nacrtati funkcije koje će<br />

izgledati kao da su nacrtane pomoću software paketa Mathematica.<br />

Ovaj paket omogućava i projekciju dvodimenzinalnog crteža/teksta na<br />

bilo koju ravan proizvoljog geometrijskog tijela.


C.2 pst-ob3d 77<br />

C.2 pst-ob3d<br />

Paket služi za predstavljanje osnovnih <strong>3D</strong> grafičkih objekata. Do sada postoje<br />

samo dvije definisane naredbe: \PstCube za crtanje kocke i \PstDie<br />

za crtanje kockice za kockanje. Ipak, postoje brojni dodatni parametri, čijim<br />

se maštovitim kombinacijama dobijaju zanimljivi oblici.<br />

C.3 pst-vue3d<br />

<strong>3D</strong> reprezentacija objekata je jedan od najinteresantnijih aspekata komjuterske<br />

znanosti i postoje razne oblasti industrije koje se koriste istim (dizajn automobila,<br />

aviona, video igrica . . . ). Ovaj paket omogućava, upravo za ovakve<br />

svrhe potrebnu, manipulaciju <strong>3D</strong> objektima, koja se postiže odgovarajućim<br />

izborom perspektive posmatranja objekta. Jedna od ovih manipulacija je i<br />

mogućnost predstavljanja unutrašnjosti <strong>3D</strong> objekata . . .<br />

C.4 pst-gr3d<br />

pst-gr3d je pstricks paket za crtanje trodimenzionalne mreže. Postoji<br />

samo jedna glavna naredba \PstGridThreeD i nekoliko parametara za specifikaciju<br />

karakteristika <strong>3D</strong> mreže.<br />

C.5 pst-fr3d<br />

Ovaj paket omogućava crtanje trodimenzionalnih okvira (framed boxes),<br />

korištenjem naredbe \PstFrameBoxThreeD. Ovo je posebno korisno za crtanje<br />

<strong>3D</strong> objekata, kao što su dugmad.<br />

C.6 pst-circ<br />

pst-circ je kolekcija grafičkih elemenata, baziranih na pstricks-u, koji se<br />

koriste za predstavljanje elemenata električnih kola. Tako je moguće, njihovim<br />

kombinovanjem, prikazati razna električna kola. Takod¯er je moguće<br />

strelicama naznačiti ogovarajuće smjerove proticanja struja, kao i razlike potencijala<br />

. . .


Bibliografija<br />

[1] Herbert Voß. <strong>3D</strong> plots: PST-3dplot - A PSTricks package for drawing 3d<br />

objects, v1.83; November 2008.<br />

[2] Denis Girou and Peter Kleiweg. The pst-light3d package version 0.11<br />

- A PSTricks package for three dimensional lighten effect on characters<br />

and PSTricks graphics; August 2007.<br />

[3] Dominique Rodriguez and Herbert Voß. pstricks-add - Additionals Macros<br />

for pstricks v.3.00; December 2007.<br />

[4] Timothy Van Zandt. PSTricks - PostScript macros for Generic TEX;<br />

March 2003.<br />

[5] PSTricks web site∼Packages<br />

http://tug.org/PSTricks/main.cgi?file=packages

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

Saved successfully!

Ooh no, something went wrong!