Sadržaj
1 Uvod u PSTricks
1.1 Uvod . . . . . . . . . .
1.2 Komanda - \pspicture
1.3 Komanda - \psgrid . .
1.4 Komanda - \psset . .
1.5 Boje . . . . . . . . . .
.
.
.
.
.
2 Osnovni grafički objekti
2.1 Tačka . . . . . . . . . .
2.2 Linije i poligoni . . . . .
2.3 Krive . . . . . . . . . . .
2.4 Bezier krive . . . . . . .
2.5 Kružnica. Elipsa . . . .
2.6 Komande - \rput i \uput
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
6
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
12
20
26
28
32
3 Koordinatni sistem
3.1 Crtanje koordinatnog sistema . . . . . . . . .
3.2 Parametri . . . . . . . . . . . . . . . . . . . .
3.2.1 xyAxes, xAxis i yAxis . . . . . . . . .
3.2.2 labels . . . . . . . . . . . . . . . . . .
3.2.3 labelFontSize . . . . . . . . . . . . . .
3.2.4 comma . . . . . . . . . . . . . . . . .
3.2.5 xDecimals, yDecimals, xyDecimals . .
3.2.6 ticksize . . . . . . . . . . . . . . . . .
3.2.7 ticks, subticks . . . . . . . . . . . . . .
3.2.8 subticksize, xsubticksize, ysubticksize .
3.2.9 tickcolor, subtickcolor . . . . . . . . .
3.2.10 ticklinestyle, subticklinestyle . . . . .
3.2.11 logLines . . . . . . . . . . . . . . . . .
3.2.12 subticks, tickwidth, subtickwidth . . .
3.2.13 trigLabels i trigLabelBase . . . . . . .
3.3 Mijenjanje oznaka koordinatnih osa . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
36
36
39
40
40
41
42
43
44
45
46
47
48
49
49
54
57
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sadržaj
4 Pst-plot
4.1 Komanda - \psplot . . . . .
4.2 Komanda - \parametricplot
4.3 Parametar polarplot . . . .
4.4 Komanda - \pscustom . . .
4.5 Komanda - \psplotTangent
4.6 Komanda - \psStep . . . . .
4.7 Primjeri . . . . . . . . . . .
4.8 Komanda - \multido . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
60
60
73
75
76
79
79
83
86
5 Pst-node
91
5.1 Definicija noda . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2 Veza izmedju nodova . . . . . . . . . . . . . . . . . . . . . . . 94
5.3 Oznaka noda . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
ii
Poglavlje 1
Uvod u PSTricks
1.1
Uvod
Priprema za štampu matematičkih tekstova, koji su zahtjevni u smislu grafičkog izgleda dugo je podrazumjevala ili puno tehničkog znanja ili loše rezultate. Pojavom sistema TEX i LATEX taj problem je riješen, a samom autoru je omogućeno pisanje teksta. Vremenom ovi sistemi postaju standard
za pripremu teksta u akademskoj matematičarskoj zajednici, a sve više i
u ostalim naučnim oblastima. U ovom djelu se pretpostavlja poznavanje
osnovnih stvari u formiranju odredjenog teksta i sva pažnja je posvećena
grafičkom izgledu.
LATEX sam ima dosta ograničene kapacitete za crtanje. Medjutim vremenom su razvijeni paketi kojima su ta ograničenja prevazidjena, paketi
koji omogućavaju crtanje složenijih objekata. Osnovni paketi koji će se koristiti u daljem radu su pstricks, pstricks-add i pst-plot, kao i paketi
pstcol, pst-eucl, pst-node, pst-tree i arrayjob.
U prvom dijelu pažnja je posvećena crtanju objekata u dvodimenzionalnom
sistemu i njihovom pozicioniranu unutar okruženja. Drugi dio obradjuje osnovne grafičke objekte (tačke, linije, poligone,...), dok se u trećem poglavlju
ilustruju mogućnosti za predstavljanje koordinatnog sistema. U četvrtom dijelu obradjuje se grafičko predstavljanje funkcija, a sve se baizira na paketu
pstricks-add, dok peti dio zahtjeva paket pst-node i u njemu se objašnjava
način označavanja i povezivanje objekata.
Na samom početku je bitno istaći upotrebu simbola za razgraničavanje. U
tu svrhu koriste se zagrade: { }, [ ], ( ), kao i zarez, te znak jednakosti. Neke
od komandi zahtjevaju jedan ili više parametara (argumenata), koji se unose
unutar vitičastih zagrada { }, neposredno iza naziva komande i one predstavljaju uobičajeno obavezne parametre, dok druge komande podržavaju
neobavezne parametre koje se unose unutar uglastih zagrada [ ] iza naziva
komande. Zagrada ( ) i zarez se koriste za označavanje koordinata, dok se
znak jednakosti i zarez koriste za dodjeljivanje vrijednosti parametru, na
1
1.2. Komanda - \pspicture
primjer par1=vr1, par2=vr2,... Upravo zanemarivanje osobina datih simbola uzrokuje neželjene posljedice. Jedinice koje se nadalje koriste su: pt,
cm, ◦ , radijan,...
Sada se može razmotriti kako pristupiti crtanju objekta. Prije nego što
je moguće odrediti lokaciju i veličinu objekta potreban je referentni okvir u
odnosu na koji se mjeri. Najuobičajeniji koordinatni sistem za dvo-dimenzionalno
crtanje, kao što je poznato je Descartesov koordinatni sistem, koji će nadalje
biti i korišten.
1.2
Komanda - \pspicture
Kada se želi nacrtati neki objekat, većina komandi proizvodi 0-dimenzionalne
kutije. Zbog toga je potrebno osigurati prostor za crtanje objekta. LATEX
preko okruženja pspicture omogućava kreiranje crteža. Ti crteži mogu
sadržavati linije, strelice, krugove i druge objekte. Definicija okruženja je
data sa:
\begin{pspicture}(x1 , y1 )(x2 , y2 )
objekat
\end{pspicture}
Prvi par koordinata (x1 , y1 ) je argument koji odredjuje donji lijevi ugao, a
drugi par koordinata (x2 , y2 ) odreduje gornji desni ugao okruženja predvidjenog za crtanje. Ukoliko se prvi par ne navede podrazumjeva se da je to
(0,0). Ovdje je riječ o nominalnim vrijednostima kojima se LATEX -u stavlja
do znanja koliko prostora treba da rezerviše za crtež. (Crtanje objekta izvan
zadatih granica, pa čak i izvan granica stranice ovim neće biti spriječeno.)
Zadati kod će rezervisati prostor odredjen koordinatama (−0.5, 0) i (2, 1),
gdje je tačkom (−0.5, 0) odredjen lijevi donji ugao, a tačkom (2, 1) gornji
desni ugao rezervisanog prostora.
(2, 1)
Kod
\begin{pspicture}(-0.5,0)(2,1)
\end{pspicture}
(−0.5, 0)
Sada kad je odredjeno okruženje za crtež treba odredit koordinate gdje se želi
postaviti objekat. U tu svrhu preporučljivo je, naročito u početku, koristiti
\psgrid komandu, kojom je omogućeno vidjenje referentnog sistema i lakše
pozicinoniranje objekta.
2
1.3. Komanda - \psgrid
1.3
Komanda - \psgrid
Komanda je definisana sa:
\psgrid[par](x0 , y0 )(x1 , y1 )(x2 , y2 )
gdje su sa (x1 , y1 ), (x2 , y2 ) data dva suprotna tjemena četverougla, dok je
sa (x0 , y0 ) dat početak od koga se na kordinatnim osama odredjuju intervali
i njihove oznake. Koordinate su shvaćene kao i u Descartesovom koordinatnom sistemu, a oznaka [par] označava da je moguća upotreba parametra.
Sljedeći primjeri pokazuju kako promjene zadanih koordinata utiču na numeraciju podionih tačaka. Prvi primjer je jednostavan i zadate su sve tri
koordinate.
2
Kod
\psgrid(0,0)(-1,-1)(3,2)
1
0
-1
0
1
2
3
-1
Naredna dva primjera ilustruju kako se promjenom zadatih koordinata utiče
na način numeracije tačaka podjele, a zadnji mogućnost izostavljanja prvog
para koordinata i u tom slučaju numeracija podionih tačaka počinje od
prvog navedenog para koordinata.
2
Kod
\psgrid(0,0)(4,2)
1
0
0
1
2
3
4
1
2
3
4
5
4
Kod
\psgrid(1,2)(5,4)
3
2
3
1.3. Komanda - \psgrid
1
2
3
4
5
4
Kod
\psgrid(5,4)(1,2)
3
2
Osim promjene u oznakama grida, postoje parametri kojima se može mijenjati i njegov izgled. Ovdje je napravljen kratak osvrt na parametre i njihovu
funkciju. Ukoliko se parametar izostavi, objekat koji se želi nacrtati ispisuje
se prema unaprijed definisanim, odnosno standardnim osobinama. Funkcija
parametara je mijenjanje već definisanih osobina objekta. Navodeći parametar i dodjeljujući mu odredjenu vrijednost, rezultat će bit promjena željene
osobine.
U prethodnim primjerima, grid je naveden bez upotrebe parametra i tada
je crtan sa standardnim osobinama. Kada je potrebna promjena osobina
koriste se parametri koji utiču na te osobine. Na primjer, ukoliko se želi
promijeniti boja oznaka intervala u plavu, tada se parametru gridlabelcolor dodijeli vrijednost blue. To se zapisuje kao gridlabelcolor=blue,
odnosno, u cjelosti se piše:
Kod
\psgrid[gridlabelcolor=blue](0,0)(-2,-4)(4,2)
U narednoj tabeli navedeni su parametri koji se dodijeljuju isključivo komandi \psgrid.
Parametar
Moguće vrijednosti
Standardna vrijednost
gridwidth
gridcolor
griddots
gridlabels
gridlabelcolor
subgriddiv
subgridwidth
subgridcolor
subgriddots
broj
boja
broj
broj
boja
cijeli broj
broj
boja
broj
0.8pt
crna
0
10pt
crna
5
0.4pt
siva
0
Funkcija svakog parametra je ilustrovana primjerom.
4
1.3. Komanda - \psgrid
1
Kod
\psgrid[subgriddiv=1](0,0)(2,1)
0
0
1
2
0
1
2
0
1
2
0
1
2
0
1
2
0
1
2
0
1
2
1
Kod
\psgrid[gridwidth=2pt](0,0)(2,1)
Kod
\psgrid[gridwidth=2pt,
subgridwidth=1pt](0,0)(2,1)
Kod
\psgrid[griddots=10,
subgriddiv=1](0,0)(2,1)
0
1
0
1
0
1
Kod
\psgrid[subgriddots=10](0,0)(2,1)
0
1
Kod
\psgrid[gridlabels=6pt](0,0)(2,1)
0
1
Kod
\psgrid[gridcolor=blue](0,0)(2,1)
5
0
1.4. Komanda - \psset
Kod
\psgrid[gridcolor=magenta,
subgridcolor=blue]
(0,0)(2,1)
1
0
Kod
\psgrid[gridcolor=magenta,
subgridcolor=blue,
gridlabelcolor=CadetBlue]
(0,0)(2,1)
1.4
0
1
2
0
1
2
1
0
Komanda - \psset
Standardne osobine odredjene komande, osim prethodno navedenog načina,
mogu se mijenjati i komandom \psset definisanom sa:
\psset{par1=vrijednost1,par2=vrijednost2,...}
Komanda \psset dolazi ispred komande na koju se parametri odnose, na
primjer:
Kod
\psset{gridcolor=peach,
subgridcolor=apricot,
gridlabelcolor=red}
\psgrid(2,1)
Ovdje je bitno istaći mogućnost \psset komande da djeluje lokalno i globalno, dok previdjanje te osobine uzrokuje neželjene rezultate. Ukoliko se
komanda \psset navede unutar okruženja pspicture, kao u datom kodu:
6
1.5. Boje
Kod
\begin{pspicture}(0,0)(1,5)
\psset{par1=vr1,..}
\end{pspicture}
ona mijenja samo osobine objekata definisanih u tom okruženju, odnosno
ona djeluje lokalno. U narednom kodu komanda \psset koristi se neovisno
od okruženja pspicture, a rezultat je promjena osobina objekata unutar
okruženja pspicture, kao i svih objekata definisanih poslije tog okruženja.
Kod
\psset{par1=vr1,..}
\begin{pspicture}(0,0)(1,5)
\end{pspicture}
Parametrom unit i komandom \psset postiže se promjena jedinica mjere
za koordinatni sistem. Parametar unit ima sintaksu:
xunit=dim
yunit=dim
runit=dim
a standardna vrijednost je 1cm. On omogućava promjenu podionih tačaka
pojedinačno na koordinatnim osama.
1.5
Boje
Iz prethodnih primjera vidi se mogućnost upotrebe boja, a to zahtjeva
upotrebu paketa pst-col. Boje definisane u PSTricks-u su black, darkgray, gray, lightgray, white kao i red, green, blue, cyan, magenta i yellow.
Sve druge boje mogu se naknadno definisati. U tu svrhu koriste se komande:
\definecolor{naziv}{cmyk}{x,y,z,t}
\definecolor{naziv}{rgb}{x,y,z}
U samoj definiciji komande "naziv" je ime koje se dodjeljuje boji i na koje se
poziva u toku rada, dok brojevi x, y, z, t, koji variraju od 0 do 1, odredjuju
boju. Korištenjem znaka ! i broja od 1 do 100 uz naziv definisane boje,
mijenja se njen intenzitet.
Nadalje su dati primjeri za obje komande, dok su u tabeli navedene neke od
mogućih definicija boja za prvu komandu i njihova ilustracija.
7
1.5. Boje
Kod
\definecolor{tan}{cmyk} {0.14,0.42,0.56,0}
\definecolor{VioletRed}{cmyk} {0,0.81,0,0}
\definecolor{LemonChiffon}{rgb}{1.,0.98,0.8}
\definecolor{Orange}
{rgb}{1.,0.65,0.}
naziv
GreenYellow
yellow
Goldenrod
Dandelion
apricot
peach
melon
YellowOrange
orange
BurntOrange
bittersweet
RedOrange
mahogany
maroon
BrickRed
red
OrangeRed
RubineRed
WildStrawberry
salmon
CarnationPink
magenta
VioletRed
rhodamine
mulberry
RedViolet
fuchsia
cmyk
0.15,0,0.69,0
0,0,1,0
0,0.10,0.84,0
0,0.29,0.84,0
0,0.32,0.52,0
0,0.50,0.70,0
0,0.46,0.50,0
0,0.42,1,0
0,0.61,0.87,0
0,0.51,1,0
0,0.75,1,0.24
0,0.77,0.87,0
0,0.85,0.87,0.35
0,0.87,0.68,0.32
0,0.89,0.94,0.28
0,1,1,0
0,1,0.50,0
0,1,0.13,0
0,0.96,0.39,0
0,0.53,0.38,0
0,0.63,0,0
0,1,0,0
0,0.81,0,0
0,0.82,0,0
0.34,0.90,0,0.02
0.07,0.90,0,0.34
0.47,0.91,0,0.08
boja
8
naziv
RoyalPurple
BlueViolet
Periwinkle
CadetBlue
CornflowerBlue
MidnightBlue
NavyBlue
RoyalBlue
blue
cerulean
cyan
ProcessBlue
SkyBlue
turquoise
TealBlue
aquamarine
BlueGreen
emerald
JungleGreen
SeaGreen
green
ForestGreen
PineGreen
LimeGreen
YellowGreen
SpringGreen
OliveGreen
cmyk
0.75,0.90,0,0
0.86,0.91,0,0.04
0.57,0.55,0,0
0.62,0.57,0.23,0
0.65,0.13,0,0
0.98,0.13,0,0.43
0.94,0.54,0,0
1,0.50,0,0
1,1,0,0
0.94,0.11,0,0
1,0,0,0
0.96,0,0,0
0.62,0,0.12,0
0.85,0,0.20,0
0.86,0,0.34,0.02
0.82,0,0.30,0
0.85,0,0.33,0
1,0,0.50,0
0.99,0,0.52,0
0.69,0,0.50,0
1,0,1,0
0.91,0,0.88,0.12
0.92,0,0.59,0.25
0.50,0,1,0
0.44,0,0.74,0
0.26,0,0.76,0
0.64,0,0.95,0.40
boja
1.5. Boje
naziv
lavender
thistle
orchid
DarkOrchid
purple
plum
violet
cmyk
0,0.48,0,0
0.12,0.59,0,0
0.32,0.64,0,0
0.40,0.80,0.20,0
0.45,0.86,0,0
0.50,1,0,0
0.79,0.88,0,0
boja
9
naziv
RawSienna
sepia
brown
tan
gray
black
white
cmyk
0,0.72,1,0.45
0,0.83,1,0.70
0,0.81,1,0.60
0.14,0.42,0.56,0
0,0,0,0.50
0,0,0,1
0,0,0,0
boja
Poglavlje 2
Osnovni grafički objekti
Nakon što se stekao uvid u odredjivanje koordinata unutar okruženja za
crtanje može se pristupiti crtanju jednostavnih grafičkih objekata.
2.1
Tačka
Za crtanje osnovnog pojma tačke, predvidjene su dvije komande:
\psdot[par](x,y)
\psdots[par](x1 , y1 )(x2 , y2 )...(xn , yn )
Prvom komandom se crta jedna tačku sa datim koordinatama (x1 , y1 ), a
ukoliko se želi crtati više tačaka odjednom koristi se druga komanda. U tom
slučaju se ispisuje zadani broj tačaka svojim koordinatama. Iz definicije
komande jasno je da je upotreba parametra predvidjena. Neki od njih su:
Parametar
Moguće vrijednosti
dotstyle
dotscale
dotsize
dotangle
fillcolor
stil
broj
broj
ugao
boja
Standardna vrijednost
b
1
2pt
0
bijela
Parametrom dotstyle se mijenja izgled tačke, a jedna od mogućih promjena
se vidi na slici koja je data sa svojim kodom.
10
2.1. Tačka
Kod
\psset{linecolor=Periwinkle}
\begin{pspicture}(0,0)(2,2)
\psdots(0.5,0.5)
\psdots[dotstyle=square](1.5,1.5)
\end{pspicture}
2
rs
1
b
0
0
1
2
Varijacije parametra dotstyle date su u tabeli:
Stil
*
o
Bo
x
+
B+
asterisk
Basterisk
oplus
otims
|
B|
Primjer
b
b
b
bc
bc
bc
bC
bC
bC
×××
+ ++
+ ++
***
***
⊕⊕⊕
⊗⊗⊗
| | |
| | |
Stil
Primjer
square
Bsquare
square*
diamond
Bdiamond
diamond*
triangle
Btriangle
triangle*
pentagon
Bpentagon
pentagon*
rs
rs
rs
rS
rS
rS
r
r
r
ld
ld
ld
lD
lD
lD
l
l
l
ut
ut
uT
ut
uT
u
uT
u
u
qp
qp
qP
qp
qP
q
q
qP
q
Naredni kod i slika daju uvid na uticaj pojedinih parametara. Bitna napomena je da parametar fillcolor odredjuje boju unutrašnjosti tačke.
11
3
+
+
2
+
+
1
0
+
Kod
\begin{pspicture}(-1,-1)(3,3)
\psset{linecolor=BlueViolet}
\psdots[dotstyle=+,dotangle=45](0,0)
\psdots[dotstyle=+,dotscale=1.5,
dotangle=55](0.5,0.5)
\psdots[dotstyle=+,dotscale=2,
dotangle=65](1,1)
\psdots[dotstyle=+,dotscale=2.5,
dotangle=75](1.5,1.5)
\psdots[dotstyle=+,dotscale=3,
dotangle=85](2,2)
-1
-1
0
1
2
3
2.2. Linije i poligoni
2.2
5
ut
4
ut
Kod
\begin{pspicture}(0,0)(2,5)
\psset{linecolor=CadetBlue}
\psdots[dotstyle=triangle](1,0.5)
\psdots[dotstyle=triangle,
dotscale=2](1,1.5)
\psdots[dotstyle=triangle,
dotscale=2,
dotsize=7pt](1,2.5)
\psdots[dotstyle=triangle,
dotscale=2,dotsize=8pt,
dotangle=60](1,3.5)
\psdots[dotstyle=triangle,
dotscale=2,dotsize=9pt,
dotangle=30](1,4.5)
\end{pspicture}
3
ut
2
ut
1
ut
0
0
1
2
Linije i poligoni
U ovom dijelu se uvode komande za crtanje linija i poligona, od kojih većina
ima mogućnost uključivanja novih parametara. Za liniju, kao i za tačku,
predvidjene su dvije komande:
\qline(x1 , y1 )(x2 , y2 )
\psline[par]{arrows}(x1 , y1 )(x2 , y2 )...(xn , yn )
Komanda \qline, kao što se vidi iz njene definicije, crta liniju čiji su krajevi
odredjeni datim koordinatama, bez mogućnosti upotrebe parametara kao ni
mjenjanja njenih krajeva. Za promjenu odredjenih osobina koristiće se komanda \psset. Drugom komandom je omogućeno crtanje izlomljene linije,
a neki od paremetara koje je moguće koristiti su:
12
2.2. Linije i poligoni
Parametar
Moguće vrijednosti
Standardna vrijednost
linestyle
dash
dotsep
arrows
linewidth
linecolor
linearc
doubleline
doublesep
doublecolor
border
bordercolor
shadow
shadowcolor
stil
broj1 broj 2
broj
stil
broj
boja
broj
logička vrijednost
broj
boja
broj
boja
logička vrijednost
boja
solid
5pt 3pt
3pt
0.8pt
crna
0pt
false
1.25\pslinewidth
bijela
0pt
bijela
false
tamnosiva
parametar
Prvom parametaru linestyle se može dodijeliti jedna od četiri vrijednosti:
none, solid, dashed i dotted, a svaka od njih ima mogućnost prilagodjavanja, korištenjem odgovarajućih parametara. Prilikom ispisa isprekidane
linije parametrom dash odredjuje se dužina bijelih i crnih dijelova (gdje prvi
broj označava dužinu crnog, a drugi broj dužinu bijelog dijela), dok parametar dotsep odredjuje rastojanje izmedju tačaka kod linije predstavljene
tačkama. Uticaj pojedinih parametara ilustrovan je na primjerima. Prvi
primjer ilustruje funkciju parametra linearc, koji pri crtanju izlomljene linije linearc odredjuje ugao zaobljenosti rubova.
Kod
\psset{linecolor=CornflowerBlue}
\begin{pspicture}(0,0)(2,3)
\psline[linearc=0.25]
{*->>}(0.5,0.5)(2,2)
(1,3)(0,2)(2,1)
\end{pspicture}
3
2
1
0
0
1
2
Naredni primjer daje uvid u funkciju parametra linestyle koji odredjuje
izgled linije, te parametra linewidth kojim se odredjuje debljina ispisa linije.
13
2.2. Linije i poligoni
Kod
\psset{linecolor=Periwinkle!60}
\begin{pspicture}(0,0)(3,4)
\psline[linestyle=dotted,
linewidth=2pt,dotsep=7pt]
{(-)}(0.5,0.5)(2.5,0.5)
\psline[linestyle=dotted,
linewidth=2pt,dotsep=7pt]
{(-)}(0.5,0.5)(2.5,0.5)
\psline[linewidth=4pt]
{c-c}(0.5,2.5)(2.5,2.5)
\psline[linestyle=dotted,
linewidth=2pt]
{|*-|*}(0.5,3.5)(2.5,3.5)
\end{pspicture}
4
3
2
1
0
0
1
2
3
Parametar border omogućava stvaranje "granične oblasti" oko krive, a parametrom
bordercolor odredjuje se boja te oblasti. Ovo je naročito korisno kada se
želi istaknuti koja se linija crta prva, odnosno koja se linija crta preko koje
linije.
Kod
\begin{pspicture}(0,0)(3,3)
\psset{linecolor=blue}
\psline{-}(0.5,3)(2.5,0.5)
\psline[border=2.5pt,
bordercolor=Periwinkle!10]
{*->}(0.5,0.5)(2.5,3)
\end{pspicture}
3
2
1
0
0
1
2
3
Može se primjetiti da linije iz prethodnih primjera imaju različite krajeve,
koji su odredjeni parametrom arrows. Parametar arrows može se primjenjivati i kod otvorenih krivih, a njegove vrijednosti su:
14
2.2. Linije i poligoni
Stil
Primjer
Stil
>−<
>> − <<
| ∗ −|∗
| < ∗− > |∗
(−)
∗−∗
∗∗−∗∗
C −C
H −H
T −T
V −V
F −F
Primjer
<−>
<< − >>
|−|
|<−>|
[−]
o−o
oo − oo
c−c
cc − cc
h−h
t−t
v−v
f −f
Osim navedenih vrijednosti, moguće su i njihove kombinacije, a postoji i
opcija mijenjanja izgleda arrows-a pomoću parametara datih tabelom.
Parametar
Moguće vrijednosti
Standardna vrijednost
arrowsize
arrowlenght
arrowinset
tbarsize
bracketlength
rbracketlength
arrowscale
broj broj
broj
broj
dim broj
broj
broj
broj1 broj2
1.5pt 2
1.4
0.4
2pt 5
0.15
0.15
1
arrowsize
Komanda:
\pspolygon[par](x1 , y1 )(x2 , y2 )...(xn , yn )
omogućava crtanje n-ugla čija su tjemena odredjena zadanim koordinatama.
Mogućnosti ove komande su slične komandi\psline s tim da se ovdje crta
zatvorena kriva, što znači da se posljednja tačka spaja sa prvom. Komanda
\pspolygon, kao i sve naredne komande u ovom dijelu, imaju mogućnost
da se dio ograničen krivom oboji. To je rezultat dodavanja "*" komandi, kao
što se vidi iz drugog primjera.
15
2.2. Linije i poligoni
Kod
\begin{pspicture}(0,2)(2,4)
\pspolygon[linecolor=Periwinkle]
(0.5,2.5)(1.5,2)(1.5,4)
\end{pspicture}
Kod
\begin{pspicture}(0,0)(2,2)
\pspolygon*[linearc=0.1,
linecolor=CornflowerBlue]
(0,1)(1,2)(1,1)(1,0)(2,1)
\end{pspicture}
4
3
2
0
1
2
0
1
2
2
1
0
Komandom:
\psframe[par](x1 , y1 )(x2 , y2 )
se crta četverougao kod koga su suprotna tjemena zadana tačkama čije su
koordinate (x1 , y1 ), (x2 , y2 ), dok se komandom:
\psdiamond[par](x1 , y1 )(d1 , d2 )
crta četverougao kod koga prvi par koordinata odredjuje tačku presjeka
dijagonala, a drugi par koordinata odredjuje dužine poludijagonala. U
sljedećim primjerima prezentirana je upotreba navedenih komandi uz korištenje parametara. U prvom primjeru data je upotreba parametra framearc
kojim odredjujemo ugao zaobljenosti vrhova četverougla. Osim ovog parametra za odredjivanje zaobljenosti imamo i parametar cornersize koji može
uzimati vrijednosti absolute i relative (standardna vrijednost je relative).
Parametar cornersize prati parametar linearc.
16
2.2. Linije i poligoni
Kod
\begin{pspicture}(0,0)(4,4)
\psframe[linewidth=2pt,framearc=0.5,
linecolor=blue!20](1,1)(3,3)
\psframe*[linecolor=CornflowerBlue!60,
framearc=0.3](1,1)(2,2)
\psframe*[linecolor=Periwinkle!60]
(2,2)(3,3)
\end{pspicture}
4
3
2
1
0
0
1
2
3
4
Prethodni primjer uradjen preko parametra cornersize bi imao kod:
Kod
\begin{pspicture}(0,0)(4,4)
\psframe[linewidth=2pt,
cornersize=absolute,%
linearc=0.5,
linecolor=blue!20]
(1,1)(3,3)
\psframe*[linecolor=CornflowerBlue!60,
cornersize=absolute,%
linearc=0.3](1,1)(2,2)
\psframe*[linecolor=Periwinkle!60]
(2,2)(3,3)
\end{pspicture}
4
3
2
1
0
0
1
2
3
4
Za komandu \psdiamond predvidjen je parametar gangle kojim se vrši
rotacija oko tačke presjeka dijagonala za dati ugao.
Kod
\begin{pspicture}(0,0)(4,2)
\psdiamond[linecolor=CornflowerBlue]
(2,1)(1.5,0.5)
\end{pspicture}
2
1
0
0
17
1
2
3
4
2.2. Linije i poligoni
Kod
\begin{pspicture}(0,0)(4,2)
\psdiamond*[gangle=40,
linecolor=blue!20]
(2,1)(1.5,0.5)
\end{pspicture}
2
1
0
0
1
2
3
4
Komanda koja crta trougao definisan je sa:
\pstriangle[par](x1 , y1 )(a, h)
gdje koordinate prve tačke odredjuju sredinu osnovice, dok prva koordinata
druge tačke je dužina osnovice, a druga koordinata druge tačke predstavlja
visinu trougla.
Kod
\begin{pspicture}(0,0)(4,2)
\pstriangle[fillstyle=solid,
fillcolor=CornflowerBlue!60,
linestyle=dashed,
linecolor=blue!30]
(2,0.5)(3,1.5)
\end{pspicture}
Kod
\begin{pspicture}(0,0)(4,2)
\pstriangle*[gangle=-10,
linecolor=Periwinkle!60]
(2,0.5)(3,1.5)
\end{pspicture}
2
1
0
0
1
2
3
4
0
1
2
3
4
2
1
0
Iz primjera se vidi da je i u ovom slučaju moguća upotreba parametara
gangle, a rotacija se vrši u odnosu na tačku težišta trougla.
Uz prethodno navedene komande kao i sve komande kojima crtamo zatvorene
krive, imamo mogućnost upotrebe parametara:
18
2.2. Linije i poligoni
Parametar
Moguće vrijednosti
Standardna vrijednost
border
bordercolor
shadow
shadowcolor
shadowsize
shadowangle
dimen
fillstyle
fillcolor
hatchwidth
hatchsep
hatchcolor
hatchangle
broj
boja
logička vrijednost
boja
broj
broj
outer/inner/middle
stil
boja
broj
broj
boja
rot
0pt
bijela
false
tamnosiva
3pt
-45
outer
none
bijela
0.8pt
4pt
crna
45
parametar
Parametru fillstyle se mogu pridružiti vrijednosti: none, solid, vlines,
vlines*, hlines, hlines*, crosshatch, crosshatch* i boxfill, a funkcije
pojedinih vrijednosti biće jasnije iz narednih primjera.
Kod
\begin{pspicture}(0,0)(3,2)
\pspolygon[fillstyle=hlines,
linecolor=Periwinkle,
hatchcolor=NavyBlue]
(0,0)(0,2)(3,0)
\end{pspicture}
Kod
\begin{pspicture}(0,0)(3,2)
\pspolygon[fillstyle=vlines,
linecolor=Periwinkle,
hatchcolor=NavyBlue]
(0,0)(3,2)(3,0)
\end{pspicture}
19
2.3. Krive
Kod
\begin{pspicture}(0,0)(4,1.5)
\pspolygon[fillstyle=crosshatch*,
linecolor=Periwinkle,
hatchcolor=NavyBlue!30,
hatchwidth=1pt,
hatchsep=1.8pt,
hatchangle=0]
(0,3)(2,1.5)(4,3)
\end{pspicture}
Parametrom dimen se odredjuje način ispisa rubova objekta kao što se vidi
3
iz primjera.
Kod
\begin{pspicture}(-1,-1)(4,3)
\psset{linewidth=0.25,
linecolor=CadetBlue!30}
\psframe[dimen=inner](0,0)(2,1)
\psframe[dimen=middle](0,2)(2,3)
\psframe[dimen=outer](3,0)(4,3)
\end{pspicture}
2.3
2
1
0
-1
-1
0
1
2
3
Krive
Prethodni dio je baziran na crtanju n-uglova, kojim su zadane tačke tjemena,
odnosno njihove koordinate, a sada se prema zadanim tačkama crta kriva.
Postoje tri komande kojima je to omogućeno u zavisnosti od zahtjeva koje
treba ispuniti, a to su:
\pscurve[par]{arrows} (x1 , y1 )(x2 , y2 )...(xn , yn )
\psecurve[par]{arrows}(x1 , y1 )(x2 , y2 )...(xn , yn )
\psccurve[par](x1 , y1 )(x2 , y2 )...(xn , yn )
Ukoliko se želi nacrtati "otvorena" kriva, kriva čije krajnje tačke nisu spojene,
koristi se komanda \pscurve. Uključivanjem parametra showpoints, tačke
na osnovu kojih se kriva crta biće vidljive, što je korisno pri postizanju
potrebnog izgleda krive.
20
4
2.3. Krive
4
Kod
\begin{pspicture}(0,-1)(4,4)
\pscurve[linecolor=CadetBlue]{<->}
(2,1)(1,2)(2,4)
(2.5,2)(3.5,2.5)
\end{pspicture}
3
2
1
0
0
1
4
2
Kod
\begin{pspicture}(0,-1)(4,4)
\pscurve[linecolor=CadetBlue,%
showpoints=true]%
(2,1)(1,2)(2,4)%
(2.5,2)(3.5,2.5)
\end{pspicture}
3
4
b
3
b
2
b
b
1
b
0
0
1
2
3
4
Kroz dati broj tačaka može se povući beskonačno mnogo krivih. Kako se
crta kriva? Postavlja se pitanje šta čini razliku? Način ja sljedeći. Neka su
A, B i C tri uzastopne tačke. Kriva prolazi kroz tačku B tako da tangenta
krive, u toj tački, bude okomita na simetralu ugla ∡ABC. Sljedeća slika
ilustruje postupak.
C
b
b
B
b
b
b
A
Druga komanda \psecurve omogućava da se krajnje tačke krive ne crtaju,
ali se u toku formiranja krive uzimaju u obzir. Ideja je da ona te krajeve krive
učini nevidljivim na crtežu, ali ih prepoznaje u postupku crtanja, što utiče na
konačan izgled krive. Komanda \psecurve je predstavljena koordinatama
zadanim u prethodnom primjeru.
21
2.3. Krive
4
Kod
\begin{pspicture}(0,0)(4,4)
\psecurve[linecolor=CadetBlue,
showpoints=true]%
(2,1)(1,2)(2,4)%
(2.5,2)(3.5,2.5)
\end{pspicture}
b
3
2
b
b
1
0
0
1
2
3
4
Ukoliko se koordinate krajnjih tačaka iz zadnjeg primjera promijene, komanda \psecurve, kako je istaknuto rezultirat će drugačijim izgledom krive,
4
što se vidi iz primjera.
b
Kod
\begin{pspicture}(0,0)(4,4)
\psecurve[linecolor=CadetBlue,
showpoints=true]%
(0.5,1)(1,2)(2,4)%
(2.5,2)(2.5,2.5)
\end{pspicture}
3
2
b
b
1
0
0
1
2
3
4
Možda će sljedeće slike, gdje se krive iz datih primjera preklapaju, uticaj
izostavljanja krajnjih tačaka učiniti jasnijim.
4
4
3
3
2
2
1
1
0
1
2
3
4
0
1
2
3
4
"Zatvorena" kriva je rezultat treće komande \psccurve. Sada kriva zadana
tačkama iz prvog primjera, uz upotrebu ove komande, izgleda ovako:
22
2.3. Krive
4
3
2
1
0
0
1
2
3
4
Parametar koji odredjuje krivinu krivih je
curvature=broj1 broj2 broj3.
Njegova standardna vrijednost je 1 0.1 0. Da bi se dobila kriva sa odredjenim osobinama potrebno je da se "pogode‘" pravi brojevi. Vrijednosti
brojeva idu od -1 do 2. Na primjerima su ilustrovani uticaji na zakrivljenost
krive, svakog od brojeva. Manje vrijednosti prvog broja čine da kriva bude
zategnuta, a veće da se ta zategnutost gubi.
5
5
4
4
b
b
3
b
b
3
b
2
b
2
b
b
1
b
b
1
b
0
b
0
0
1
2
3
4
0
5
curvature = 2 0.1 0
1
2
3
4
5
curvature = 1 0.1 0 (Stan.Vr.)
5
5
4
b
4
b
3
b
b
3
b
2
b
b
2
b
1
b
b
1
b
0
b
0
0
1
2
3
4
0
5
curvature = 0 0.1 0
1
2
3
4
5
curvature = –1 0.1 0
I drugi broj utiče na zategnutost krive, ali samo na dijelu izmedju odredjenog
para tačaka. Neka su A, B, C tri uzastopne tačke. Ako je ugao ABC manji
23
2.3. Krive
od 450 , tada manje vrijednosti drugog broja rezulatiraju većom stegnutošću
krive oko tačke B, a veće vrijednosti utiču da se to gubi. Ako je ugao veći
od 450 efekat će biti suprotan. Sljedeća četiri primjera to pokazuju.
5
5
4
4
b
b
3
b
b
3
b
2
b
2
b
b
1
b
b
1
b
0
b
0
0
1
2
3
4
0
5
curvature = 1 2 0
1
2
3
4
5
curvature = 1 1 0
5
5
4
4
b
b
3
b
b
3
b
2
b
2
b
b
1
b
b
1
b
0
b
0
0
1
2
3
4
5
1
0
2
3
4
5
curvature = 1 –1 0
curvature = 1 0.1 0 (Stan.Vr.)
Treći broj utiče na ugao kod svake tačke. Prije je bilo mišljenje da kriva
zadana komandom \pscurve, gdje su A, B, C uzastopne tačke, crta taj ugao
tako da tangenta na krivu u tački B zaklapa sa simetralom ugla ABC ugao
od 900 . Ustvari to je tačno samo za standardnu vrijednost trećeg broja.
Za vrijednost -1 tangenta krive u tački B paralelna je pravoj odredjenoj
tačkama A i C. Naredni primjeri omogućavaju da se lakše uoče te promjene.
5
5
4
b
4
b
3
b
b
3
b
2
b
b
2
b
1
b
b
1
b
0
b
0
0
1
2
3
4
5
0
curvature = 1 0.1 2
1
2
3
4
curvature = 1 0.1 1
24
5
2.3. Krive
5
5
4
b
4
b
3
b
b
3
b
2
b
b
2
b
1
b
b
1
b
0
b
0
0
1
2
3
4
5
1
0
2
3
4
5
curvature = 1 0.1 –1
curvature = 1 0.1 0 (Stan.Vr.)
Možda će uticaj trećeg broja na izgled same krive biti jasniji ukoliko je
prikazana tangenta u tački B. Kao primjer, u narednim slikama uzete su
zadnje tri tačke.
b
B
b
b
b
b
B
b
b
b
C
C
b
b
A
A
b
b
curvature = 1 0.1 2
curvature = 1 0.1 1
B
b
B
b
b
b
b
b
b
b
C
C
b
b
A
A
b
b
curvature = 1 0.1 –1
curvature = 1 0.1 0 (Default)
25
2.4. Bezier krive
Može se primjetiti da opadanje vrijednosti trećeg broja ima za rezultat
rotaciju tangente krive u tački B, u smjeru suprotnom kretanju kazaljke
na satu.
2.4
Bezier krive
Za razliku od prethodnih komandi gdje je kriva crtana na osnovu proizvoljnog
broja tačaka, ovdje ćemo uvesti komandu koja crta krivu kada su zadate četiri tačke, koje nazivamo kontrolnim tačkama. Prva i zadnja tačka nazivaju
se još čvorovima. Kontrolne tačke su tačke koje imaju uticaj na izgled krive,
dok su čvorovi kontrolne tačke koje leže na krivoj. Riječ je o krivoj koja se
zadaje komandom:
\psbezier[par]{arrows}(x1 , y1 )(x2 , y2 )(x3 , y3 )(x4 , y4 )
Bezier-kriva je parametarski zadan polinom definiran sa:
Q(t) =
n
X
i=0
Pi · Bin (t), 0 ≤ t ≤ 1
gdje su
Bin (t)
=
!
n i
t (1 − t)n−i ,
k
Bernstein-ovi polinomi n-tog stepena, a
Pi , i = 0, ..., n
su kontrolne tačke.
4
Kod
\begin{pspicture}(1,1)(4,4)
\psbezier[linecolor=CadetBlue]
(1,2.5)(2,3.5)
(3,0.5)(4,4)
\end{pspicture}
3
2
1
1
2
3
4
Ovdje je takodjer, korisno koristit parametar showpoints u toku formiranja
krive.
26
2.4. Bezier krive
4
b
b
Kod
\begin{pspicture}(1,0)(4,4)
\psbezier[linecolor=CadetBlue,
showpoints=true]
(1,2.5)(2,3.5)
(3,0.5)(4,4)
\end{pspicture}
3
b
2
1
b
0
1
2
3
4
Osobina krive bezier je da prolazi kroz početnu i krajnju tačku (interpoliraju
ih) dok su preostale dvije tačke kontrolne, tj. kriva ne prolazi kroz njih
(aproksimira ih). Mijenjanje jedne od kontrolnih tačaka utiče na izgled cijele
krive, dok prva i zadnja tačka imaju najveći uticaj na njeno "ponašanje".
Kriva aproksimira oblik kontrolnog poligona,1 te prolazi kroz krajnje tačke i
tangentna je na prvu i zadnju stranicu poligona. Naredni primjeri ilustruju
uticaj promjene kontrolnih tačaka.
Kod
\psbezier[linecolor=CadetBlue,showpoints=true]
(0,1)(0,2)(2,3)(2,4)
\psbezier[linecolor=CadetBlue,showpoints=true]
(0,1)(0,3)(2,2)(2,4)
\psbezier[linecolor=CadetBlue,showpoints=true]
(0,1)(0,4)(2,1)(2,4)
\psbezier[linecolor=CadetBlue,showpoints=true]
(0,1)(0,5)(2,0)(2,4)
5
5
4
4
b
3
5
4b
b
3b
b
2b
2
1b
1b
0
b
1
2
4
b
3
3
2
2
1b
0
0
5b
1b
b
0
0
1
2
0
0
1
b
1
2
b
0
1
2
Kontrolne tačke su najčešće povezane linijama zbog lakšeg uočavanja i pojašnjavanja
njihovog odnosa naspram krivih. Te linije formiraju tzv. kontrolni poligon.
27
2.5. Kružnica. Elipsa
2.5
Kružnica. Elipsa
Nadalje će biti riječi o načinu crtanja kružnice, elipse, kružnog luka, kružnog
isječka, te orijentisanih uglova. Komanda:
\pscircle[par](x, y){radijus}
crta kružnicu sa zadanim radijusom i centrom kružnice u tački (x, y), kao u
primjeru:
Kod
\begin{pspicture}(0,0)(3,3)
\pscircle[linecolor=CadetBlue]
(1.5,1.5){1}
\pscircle*[linecolor=CadetBlue!40]
(1.5,1.5){0.5}
\end{pspicture}
3
2
1
0
0
1
2
3
Komanda:
\qdisk(x, y){radijus}
je ekvivalentna sa \pscircle*. Ova komanda nema predvidjenu upotrebu
parametra, te ovdje kao i u slučaju komande \qline izmjene osobina vrše se
komandom \psset, odnosno prethodna slika bi tada bila rezultat koda:
Kod
\begin{pspicture}(0,0)(3,3)
\pscircle[linecolor=CadetBlue](1.5,1.5){1}
{\psset{linecolor=CadetBlue!40}\qdisk(1.5,1.5){0.5}}
\end{pspicture}
Crtanje elipse omogućava komanda:
\psellipse[par](x1 , y1 )(a, b)
gdje prvi par koordinata odredjuje centar elipse, a koordinate a i b predstavljaju dužine poluosa, kao u primjeru:
28
2.5. Kružnica. Elipsa
Kod
\begin{pspicture}(0,0)(4,2)
\psellipse[linecolor=Periwinkle!50]
(2,1)(2,1)
\psellipse*[linecolor=blue!10]
(2,1)(0.5,1)
\end{pspicture}
2
1
0
0
1
2
3
4
Preostalo je crtanje uglova, kružnog luka i kružnog isječka. Komanda:
\pswedge[par](x, y){radijus}{α}{β}
ispisuje kružni isječak sa centrom u tački (x, y), poluprečnikom odredjenim
sa radijus, a koji ide od ugla α do ugla β.
3
Kod
\begin{pspicture}(0,0)(3,3)
\pswedge[linecolor=CadetBlue]
(1.5,1.5){1}{90}{360}
\pswedge*[linecolor=blue!10]
(1.5,1.5){1}{30}{75}
\end{pspicture}
2
1
0
0
1
2
3
Kružni luk se dobija komandom:
\psarc[par]{arrows}(x, y){radijus}{α}{β}
gdje je zadat radijus i centar kružnice (x, y), a ispis luka ide od ugla α do
ugla β u smjeru suprotnom kretanju kazaljke na satu. Ova komadna ima
mogućnost upotrebe parametara od kojih su neki dati u tabeli:
29
2.5. Kružnica. Elipsa
Parametar
Moguće vrijednosti
Standardna vrijednost
showpoints
arcsepA
arcsepB
arcsep
logička vrijednost
broj
broj
broj
false
0pt
0pt
0
Ukoliko se uključi parametar showpoints tada komanda \psarc crta isprekidanu liniju od centra kružnice do krajeva luka. Osim uz komandu
\psarc, parametar showpoints može da se koristi i uz druge komande.
Ostali parametri su značajni za crtanje uglova i označavanje orijentacije.
Na primjerima je ilustrovana funkcija parametara showpoints i arcsepB.
Kod
\begin{pspicture}(0,0)(4,4)
\psarc[showpoints=true,
linecolor=CadetBlue]%
(2,2){1.5}{15}{60}
\psarc*[showpoints=true,
linecolor=CornflowerBlue]%
(2,2){1.5}{215}{333}
\end{pspicture}
Kod
\begin{pspicture}(-2,0)(2,4)
\psline[linewidth=2pt,
linecolor=CornflowerBlue]%
(2,3)(0,1)(-2,3)
\psarc[arcsepB=0.5pt,
linecolor=CadetBlue]
{->}%
(0,1){1}{45}{135}
\end{pspicture}
4
3
2
1
0
0
1
2
3
4
-2
-1
0
1
2
4
3
2
1
0
Budući da je potrebno crtati i uglove čija je orijentacija u smjeru kretanja
kazaljke na satu, u tu svrhu služi komanda:
\psarcn[par]{arrows}(x, y){radijus}{α}{β}
30
2.5. Kružnica. Elipsa
Kod
\begin{pspicture}(-2,0)(2,3)
\psline[linewidth=2pt,
linecolor=CornflowerBlue]%
(2,3)(0,1)(-2,3)
\psarcn[arcsepB=0.5pt,
linecolor=CadetBlue]{->}%
(0,1){1}{45}{135}
\end{pspicture}
3
2
1
0
-2
-1
0
1
2
Osim komande za ispis kružnog luka postoji komanda za ispis luka elipse:
\psellipticarc[par]{arrows}(x1 , y1 )(x2 , y2 ){α}{β}
gdje crtanje luka ide od ugla α do ugla β u smjeru suprotom kretanju
kazaljke na satu.
Kod
\begin{pspicture}(-1,-1)(3,2)
\psellipticarc[showpoints=true,
arrowscale=2,
linecolor=CornflowerBlue]
{->}(1,0.5)(2,1){215}{0}
\psellipticarcn*[showpoints=true,
arrowscale=2,
linecolor=blue!30]
{->}(1,0.5)(2,1){215}{140}
\end{pspicture}
Kod
\begin{pspicture}(-1,-1)(3,2)
\psellipticarcn[showpoints=true,
arrowscale=2,
linecolor=blue!30,
linewidth=2pt]
{->}(1,0.5)(2,1){215}{0}
\end{pspicture}
31
2
1
0
-1
-1
0
1
2
3
-1
0
1
2
3
2
1
0
-1
2.6. Komande - \rput i \uput
Prethodni primjeri su ilustrovali neke moguće kombinacije komandi. Jasno
je da se većina parametara s početka izlaganja može dodavati i novim komandama.
2.6
Komande - \rput i \uput
U toku rada ukazuje se potreba za pozicioniranjem objekta i teksta, kao i
označavanje objekata. U tu svrhu koriste se komande \rput i \uput. One
se mogu koristiti unutar i izvan pspicture okruženja. Komanda \rput je
definisana sa:
\rput[p-tačka]{ugao}(x,y){objekat}
P-tačka je referentna tačka objekta. Tačka zadana koordinatama (x, y)
odredjuje gdje se na crtežu postavlja referentna tačka objekta, dok oznaka
za {objekat} može sadržavati neku od komandi za crtanje ili tekst. Standardno je p-tačka na sredini "kutije", ako se tako posmatra objekat koji se
pozicionira. Ovu osobinu je moguće mijenjti korištenjem jednog ili dva od
datih parametara:
Horizontalno
l lijevo
r desno
Vertikalno
t vrh
b dno
B osnovna linija
Sljedeća slika ilustruje gdje bi bila p-tačka sa različitim kombinacijama
parametara. (Osnovna linija je predstavljena isprekidanom linijom.)
t
tr
tl
l
Bl
r
Br
B
b
br
bl
Ugao iz definicije komande \rput je ugao za koji se objekat ili tekst rotira.
Sljedeća tabela daje oznake koje je moguće koristiti za pozicioniranje objekata.
Oznaka
U
L
D
R
Vrijednost
gore
lijevo
dole
desno
Ugao
0
90
180
270
Oznaka
N
W
S
E
32
Vrijednost
sjever
zapad
jug
istok
Ugao
*0
*90
*180
*270
2.6. Komande - \rput i \uput
Komanda \rput biće korištena u daljem radu, a ovdje su navedena dva
jednostavna primjera njene primjene.
A
Kod
Poruka je na margini.
\rput{34}{
\psframe(-1,0)(2,1)
\rput[br]{*0}(2,1){A}}
Kod
\rput[b]{90}(-1,0){Poruka je na margini.}
Komanda \rput se koristi uglavnom za pozicioniranje objekata, ali i za
njihovo označavanje. Medjutim, PSTricks ima varijantu komande \rput
namjenjenu posebno za oznake. To je komanda \uput definisan sa:
\uput{labelsep}[p-tačka]{ugao}(x,y){objekat}
P-tačka odredjuje gdje se objekat pozicionira u odnosu na date koordinate
(x, y). Komanda \uput, kao i prethodna, ima mogućnost koristiti oznake
kojima se vrši pozicioniranje objekta.
Oznaka
r
u
l
d
Vrijednost
desno
gore
lijevo
dole
Ugao
0
90
180
270
Oznaka
ur
ul
dl
dr
Vrijednost
gore desno
gore lijevo
dole lijevo
dole desno
Ugao
45
135
225
315
Jedan od načina korištenja prethodne dvije komande dat je narednim kodom,
u kome se pojavljuje komanda \SpecialCoor. Ova komanda omogu-ćava
prelazak na polarne koordinate koje su odrejene sa (r; α), gdje r predstavlja
rastojanje, a α ugao. Za razliku od Descartesovog koordinatnog sistema,
ovdje se razdvajanje vrši znakom ";".
33
2.6. Komande - \rput i \uput
Kod
\begin{pspicture}(-2,-2)(2,2)
\psset{unit=1.2cm,framesep=1.pt}
\pswedge[fillstyle=solid,fillcolor=blue]{2}{0}{70}
\pswedge[fillstyle=solid,fillcolor=CadetBlue]{2}{70}{200}
\pswedge[fillstyle=solid,fillcolor=Periwinkle]{2}{200}{360}
\SpecialCoor
\rput(1.2;35){\psframebox*{\small9.0\%}}
\uput{2.2}[45](0,0){bakar}
\rput(1.2;135){\psframebox*{\small16.7\%}}
\uput{2.2}[135](0,0){srebro}
\rput(1.2;280){\psframebox*{\small23.1\%}}
\uput{2.2}[280](0,0){zlato}
\end{pspicture}
bakar
srebro
16.7%
9.0%
23.1%
zlato
U sljedećem primjeru ilustorvane su sve oznake date u tabeli, za komandu
\uput. Koordinate tačke centra kruga postavljaju se komandom \uput.
Oznaka dl (dole lijevo) pozicionira objekat, odnosono tekst, dole lijevo u
odnosu na zadane koordinate (0, 0).
Kod
\begin{pspicture}(0,0)(2,2)
\psset{linecolor=magenta}
\qdisk(0,0){1pt}\uput[dl](0,0){(0,0)}
\qdisk(1,0){1pt}\uput[d](1,0){(1,0)}
\qdisk(2,0){1pt}\uput[dr](2,0){(2,0)}
\qdisk(2,1){1pt}\uput[r](2,1){(2,1)}
\qdisk(2,2){1pt}\uput[ur](2,2){(2,2)}
\qdisk(1,2){1pt}\uput[u](1,2){(1,2)}
\qdisk(0,2){1pt}\uput[ul](0,2){(0,2)}
\qdisk(0,1){1pt}\uput[l](0,1){(0,1)}
\end{pspicture}
34
(0,2)
(1,2)
(0,1)
(0,0)
(2,2)
(2,1)
(1,0)
(2,0)
2.6. Komande - \rput i \uput
Razliku u načinu rada komandi \uput i \rput najlakše je uočiti na konkretnom primjeru. Ako se komandom \uput odredi tačka zadata kordinatama
(0, 1) kao lokacija u odnosu na koju se pozicionira objekat, a sa l zada način
pozicioniranja, tada se tekst pozicionira lijevo u odnosu na zadatu tačku
(0, 1). Komanda \rput za iste podatke daje drugačiji rezultat. To je iz
razloga što oznaka pozicioniranja objekta zadata sa l odredjuje referentnu
tačku na lijevoj strani "kutije" u kojoj je tekst koji je potrebno pozicionirati,
tj. sada oznaka l odredjuje p-tačku koja je ujedno i početna tačka za ispis
teksta.
Kod
\begin{pspicture}(0,0)(2,2)
\psset{linecolor=magenta}
\pspolygon(1,2)(0,1)(2,0)(1,2)
\uput[l](0,1){\small(0,1)}
\rput[l](0,1){\tiny(0,1)}
\end{pspicture}
(0,1)
(0,1)
Sve do sada navedene primjere najčešće je potrebno predstaviti u koordinatnom sistemu, a većina mogućnosti koje su pružene za crtanje koordinatnog
sistema, date su u narednom dijelu.
35
Poglavlje 3
Koordinatni sistem
3.1
Crtanje koordinatnog sistema
Descartesov koordinatni sistem crta se komandom:
\psaxes[par]{arrows}(x1 , y1 )(x2 , y2 )(x3 , y3 )
Način rada sa ovom komandom je poput rada sa komandom \psgrid. Tačka
(x1 , y1 ) odredjuje gdje je koordinatni početak smješten unutar okruženja u
odnosu na koje je pozicioniran kordinatni sistem. Na sljedećoj slici grid
predstavlja referentni sistem. Osa x je odredjena kordinatama x2 i x3 i ide
od x2 do x3 , u odnosu na referentni sistem. Analogno tome i osa y. Radi
daljeg izlaganja uveden je pojam imaginaranog četverougla čija su suprotna
tjemena data sa (x2 , y2 ) i (x3 , y3 ), kao što se vidi na slici.
(x1 , y1 )
3
(x3 , y3 )
2
1
(x2 , y2 )
0
-1
-2
-3
-2
-1
0
1
36
2
3
4
3.1. Crtanje koordinatnog sistema
Sljedeći kod:
Kod
\psaxes(-1,1)(-2,-1)(3,2)
daje koordinatni sistem na slici
3
2
1
1
-1
1
0
-1
-1
-2
2
3
4
-2
-2
-3
-1
0
1
2
3
4
Ukoliko se koordinatni početak sistema koji se crta, poklapa sa prvim od dva
data suprotna tjemena imaginarnog četverougla, u tom slučaju se ne mora
navoditi prvi uredjeni par, odnosno u prethodnom primjeru to bi značilo:
Kod
\psaxes(-2,-1)(3,2)
a rezultat bi bila slika:
3
2
3
1
2
0
1
-1
0
0
1
2
3
4
5
-2
-3
-2
-1
0
1
2
3
4
Medjutim, koordinatni početak sistema koji se crta može da se poklopi
sa koordinatnim početkom referentnog sistema i u tom slučaju dovoljno
je navesti koordinate drugog tjemena četverougla, tačnije za već navedeni
primjer pisali bi:
37
3.1. Crtanje koordinatnog sistema
Kod
\psaxes(3,2)
a ispis bi bila slika:
3
2
2
1
1
0
0
0
1
2
3
-1
-2
-3
-2
-1
0
1
2
3
4
Narednih par primjera ilustruje najjednostavnije crtanje kordinatnog sistema.
Kod
\begin{pspicture}(0,0)(4,2)
\psaxes{->}(4,2)
\end{pspicture}
1
0
0
1
2
3
0
1
2
3
-2
-1
0
1
0
Kod
\begin{pspicture}(0,0)(4,2)
\psaxes{->}(4,-2)
\end{pspicture}
-1
Kod
\begin{pspicture}(0,0)(4,3)
\psaxes{->}(0,0)(-2.5,0)(2.5,-2.5)
\end{pspicture}
-1
-2
Osim prethodne komande za crtanje koordinatnog sistema, postoji i komanda koja podržava više mogućnosti. Komanda:
38
2
3.2. Parametri
\psaxes[par]{arrows}(x1 , y1 )(x2 , y2 )(x3 , y3 )[Xlabel,Xangle][Ylabel,Yangle]
ima mogućnost upotrebe parametra, arrowsa i oznaka za x i y osu. Ukoliko
se žele promjene na y osi, mjesto predvidjeno za promjene na osi x ostavlja
se prazno. Takodjer je moguće izostavljanje oznaka na y osi. U daljem
izlaganju više pažnje je posvećeno parametrima predvidjenim za podešavanje
osobina koordinatnog sistema.
3.2
Parametri
Parametar
Moguće vrijednosti
Standardna vrijednost
xyAxes
false/true
true
xAxis
false/true
true
yAxis
false/true
true
labels
all/x/y/none
all
labelsFontSize
fontsize macro
{}
comma
false/true
false
xDecimals
broj ili nista
{}
yDecimals
broj ili nista
{}
xyDecimals
broj ili nista
{}
ticksize
dužina [dužina]
-4pt 4pt
subticks
broj
0
xsubticks
broj
0
ysubticks
broj
0
subticksize
broj
0.75
tickcolor
boja
crna
xtickcolor
boja
crna
ytickcolor
boja
crna
subtickcolor
boja
tamnosiva
xsubtickcolor
boja
tamnosiva
ysubtickcolor
boja
tamnosiva
ticklinestyle
solid/dashed/dotted/none solid
subticklinestyle solid/dashed/dotted/none solid
logLines
none/x/y/all
none
tickwidth
dužina
0.5\pslinewidth
trigLabels
false/true
false
trigLabelsBase broj
0
U prethodnoj tabeli navedeni su neki od parametara koji se mogu koristiti,
a njihova funkcija je ilustrovana u daljim primjerima.
39
3.2. Parametri
3.2.1
xyAxes, xAxis i yAxis
Ovim paramerom je omogućeno crtanje samo jedne od kordinatnih osa.
Kada se ukaže potreba za tim, parametar za osu koja se izostavlja, podešava
se na false, dok se numeracija sa različitih strana ose postiže parametrom
labelsep.
Kod
\begin{pspicture}(1,4)
\psaxes[xAxis=false,
linecolor=magenta!55,
labelsep=-20pt]
{->}(0.5,0)(0.5,4)
\psaxes[xAxis=false,
linecolor=blue!40]
{->}(1.5,0)(1.5,4)
\end{pspicture}
Kod
\begin{pspicture}(4,1)
\psaxes[yAxis=false,
linecolor=CadetBlue]
{->}(0,1.5)(4,1.5)
\psaxes[yAxis=false,
linecolor=magenta!45,
labelsep=-20pt]
{->}(0,0.5)(4,0.5)
\end{pspicture}
3.2.2
3
3
2
2
1
1
0
0
0
1
2
3
0
1
2
3
labels
Ovaj parametar odredjuje numeraciju na osama, odnosno koja od osa će biti
numerisana. Moguće vrijednosti su all/x/y/none. Prvi primjer prezentira
funkciju parametra all, a rezultat je numeracija na obje koordinatne ose, dok
je drugi primjer prezentacija funkcije parametra none, a rezultat je potpuno
izostavljanje brojeva. Zadnja dva primjera pokazuju kako se dodjeljivanjem
vrijednosti x (y), parametru labels, postiže numeracija samo ose x, odnosno
samo ose y.
40
3.2. Parametri
Kod
\begin{pspicture}(0,0)(3,3)
\psaxes[labels=all]
{->}(1,1)(0,0)(3,3)
\end{pspicture}
1
-1
1
-1
Kod
\begin{pspicture}(0,0)(3,3)
\psaxes[labels=none]
{->}(1,1)(0,0)(3,3)
\end{pspicture}
Kod
\begin{pspicture}(0,0)(3,3)
\psaxes[labels=y]
{->}(1,1)(0,0)(3,3)
\end{pspicture}
1
-1
Kod
\begin{pspicture}(0,0)(3,3)
\psaxes[labels=x]
{->}(1,1)(0,0)(3,3)
\end{pspicture}
3.2.3
-1
1
labelFontSize
Parametar labelFontSize daje mogućnost izmjene veličine vertikalne i horizontalne numeracije. Neke od mogućih vrijednosti \Huge, \footnotesize,
\small i \tiny, date su u primjerima. Osim toga, u primjerima je prikazano
kako označiti ose. Sama definicija komande daje tu mogućnost jer navodeći
unutar zagrada [ ] naziv ose i ugao gdje bi trebalo da se oznaka pozicionira,
dobija se potreban rezultat.
41
3.2. Parametri
y
Kod
\begin{pspicture}(0.5,0)(4,3)
\psaxes{->}(4,2.5)
[$x$,0][$y$,90]
\end{pspicture}
2
1
x
0
Kod
\begin{pspicture}(0,0)(4,3)
\psaxes[labelFontSize=\small]
{->}(4,2.5)
\end{pspicture}
0
1
2
3
0
1
2
3
0
1
2
3
1
2
3
2
1
0
Kod
\begin{pspicture}(0,0)(4,3)
\psaxes[labelFontSize= \footnotesize]
{->}(4,2.5)
\end{pspicture}
2
1
0
Kod
\begin{pspicture}(0,0)(4,3)
\psaxes[labelFontSize=\tiny]
{->}(4,2.5)
[\textbf{x},-90][\textbf{y},0]
\end{pspicture}
y
2
1
0
0
3.2.4
comma
Ovaj parametar omogućava da numeracije koordinatnih osa budu decimalni
brojevi sa zarezom, dok dodjeljivanjem parametrima Dx i Dy konkretnih
vrijednosti, odredjuje interval podjele koordinatnih osa. O parametrima Dx
i Dy u daljem izlaganju biće više riječi.
42
x
3.2. Parametri
Kod
\begin{pspicture}(5,5)
\psaxes[Dx=1.5,comma,
Dy=0.75]
{->}(5,5)
\end{pspicture}
3,75
3,00
2,25
1,50
0,75
0
0
3.2.5
1,5
3,0
4,5
xDecimals, yDecimals, xyDecimals
Sa ovim parametrima takodjer se dobijaju decimalni brojevi, ali sada sa
tačkom. Za razliku od prethodnog parametra gdje je numeracija bila istovremeno na obje ose, sa ovim parametrima imamo mogućnost da numeracija
budu decimalni brojevi samo na osi x ili samo na osi y.
Kod
\begin{pspicture}(3,3)
\psaxes[xDecimals=3]{->}(3,3)
\end{pspicture}
2
1
0
0.000 1.000 2.000
Kod
\begin{pspicture}(3,3)
\psaxes[yDecimals=2]{->}(3,3)
\end{pspicture}
2.00
1.00
0.00
Kod
\begin{pspicture}(3,3)
\psaxes[xyDecimals=1] {->}(3,3)
\end{pspicture}
0
1
2
0.0
1.0
2.0
2.0
1.0
0.0
43
3.2. Parametri
3.2.6
ticksize
Ovaj parametar će učiniti suvišnim parametar tickstyle, jer sada postoji
mogućnost mijenjanja veličine podionih oznaka na obje ose, pojedinačno ili
istovremeno. Sintaksa parametra je:
ticksize=vrijednost[jedinica]
ticksize=vrijednost[jedinica]vrijednost[jedinica]
xticksize=vrijednost[jedinica]
xticksize=vrijednost[jedinica]vrijednost[jedinica]
yticksize=vrijednost[jedinica]
yticksize=vrijednost[jedinica]vrijednost[jedinica]
Prva vrijednost se odnosi na lijevo/dole, a druga na desno/gore u odnosu
na koordinatne ose.
Ukoliko se parametru ticksize dodijeli vrijednost 0.5 cm, tada su podione
tačke dužine 0.5 cm i to na osi x okrenute prema gore, a na osi y desno.
Sljedeći primjer to pokazuje.
3
Kod
\psset{arrowscale=2}
2
\begin{pspicture}(-1.5,-1.5)(4,3.5)
\psaxes[ticksize=0.5cm]
1
{->}(0,0)(-1.5,-1.5)(4,3.5)
\end{pspicture}
-1
1
2
3
-1
Ukoliko se umjesto 0.5 cm stavi -0.5 cm, oznake podioka biće postavljene
suprotno. Sljedeći primjer ilustruje parametre pojedinačno za obje ose. Ako
se parametru yticksize dodijeli vrijednost 0 10pt, to znači da će na osi y
oznake podioka biti izostavljene s lijeve strane ose, dok će sa desne strane
ose imati dužinu 10pt. Na isti način funkcioniše parametar xticksize.
Kod
\psset{arrowscale=2}
\begin{pspicture}(-1.5,-1.5)(4,3.5)
\psaxes[xticksize=-10pt 0,
yticksize=0 10pt]%
{->}(0,0)(-1.5,-1.5)(4,3.5)
\end{pspicture}
3
2
1
-1
44
-1
1
2
3
3.2. Parametri
Takodjer je moguće nacrtati i grid kombinacijom ovih parametara.
Kod
\psset{arrowscale=2}
\begin{pspicture}(-.5,-.5)(5,4.5)
\psaxes[ticklinestyle=dashed,
ticksize=0 4cm]%
{->}(0,0)(-.5,-.5)(4,3.5)
\end{pspicture}
3
2
1
1
3.2.7
2
3
ticks, subticks
Parametrom ticks odredjuju se glavne podione tačke. Moguće vrijednosti
su: all/x/y/none. Parametar subticks daje mogućnost odredjivanja podjele unutar dijela odredjenog podionim tačkama. Podjelu je moguće odrediti
pojedinačno za ose, ali i potpuno izostaviti. Naredni primjeri ilustruju na
koji način je moguće postići označavanje podionih tačaka, kao i podjele
izmedju njih.
Kod
\begin{pspicture}(-1,-1)(2,2)
\psaxes[ticks=all,subticks=5]{->}
(0,0)(-1,-1)(2,2)
\end{pspicture}
1
-1
1
-1
Kod
\begin{pspicture}(0,0)(-1,-1)(2,2)
\psaxes[ticks=x,subticks=5]
{->}(0,0)(-1,-1)(2,2)
\end{pspicture}
-1
45
1
3.2. Parametri
Kod
\begin{pspicture}(-1,-1)(2,2)
\psaxes[ticks=y,subticks=5]
{->}(0,0)(-1,-1)(2,2)
\end{pspicture}
1
-1
Kod
\begin{pspicture}(-1,-1)(2,2)
\psaxes[ticks=none,subticks=5]
{->}(0,0)(-1,-1)(2,2)
\end{pspicture}
3.2.8
subticksize, xsubticksize, ysubticksize
Sintaksa ovog parametra je:
subticksize=vrijednost
xsubticksize=vrijednost
ysubticksize=vrijednost
Parametrom subticksize podešavaju se istovremeno vrijednosti na obje ose,
a sam parametar odredjuje dužinu oznaka podjele izmedju glavnih podionih
tačaka. Ukoliko je dodijeljena vrijednost 1, tada se dužina unutrašnjih podioka poklapa sa dužinom glavnih podioka. Veliki broj parametara, a samim
tim i njihovo kombinovanje daje različite mogućnosti izgleda koordinatnog
sistema. Jedna od njih je data primjerom:
Kod
\psset{yunit=1.5cm,xunit=3cm}
\begin{pspicture}(-1.25,-3.75)(3.25,0.75)
\psaxes[xticksize=-3.5 0.5,ticklinestyle=dashed,
subticks=5,xsubticksize=1,%
ysubticksize=0.75,xsubticklinestyle=dotted,
xsubtickwidth=1pt]
{->}(0,0)(-1,-3)(3.25,0.5)
\end{pspicture}
46
3.2. Parametri
-1
-2
-3
-1
3.2.9
1
2
3
tickcolor, subtickcolor
Parametri tickcolor i subtickcolor odredjuju boju podionih tačaka i imaju
mogućnost djelovanja pojedinačno na obje ose. Sintaksa za ove parametre
glasi:
tickcolor=boja
xtickcolor=boja
ytickcolor=boja
subtickcolor=boja
xsubtickcolor=boja
ysubtickcolor=boja
Kod
\psset{yunit=1cm,xunit=1cm}
\begin{pspicture}(0,-0.75)(10,1)
\psaxes[yAxis=false,ticksize=0 10mm,
subticks=10,subticksize=0.75,
subtickcolor=magenta!55,
tickcolor=Periwinkle!70,
labelsep=-20pt,]
(10.01,0)
\end{pspicture}
47
3.2. Parametri
0
1
3.2.10
2
3
4
5
6
7
8
9
10
ticklinestyle, subticklinestyle
Sintaksa je:
ticklinestyle=solid/dashed/dotted/none
xticklinestyle=solid/dashed/dotted/none
yticklinestyle=solid/dashed/dotted/none
subticklinestyle=solid/dashed/dotted/none
xsubticklinestyle=solid/dashed/dotted/none
ysubticklinestyle=solid/dashed/dotted/none
Ukoliko se dodijeli vrijednost none to je jednako dodjeljivanju parametaru
(sub)ticksize vrijednosti 0.
Kod
\psset{unit=4cm}
\begin{pspicture}(-0.15,-0.15)(2.5,1)
\psaxes[axesstyle=frame,logLines=y,xticksize=0 1,
xsubticksize=1,ylogBase=10,
tickcolor=Periwinkle!70,
subtickcolor=magenta!65,
tickwidth=1pt,subticks=20,
xsubticks=10,xticklinestyle=dashed,
xsubticklinestyle=dashed]
(2.5,1)
\end{pspicture}
101
100
0
1
2
48
3.2. Parametri
3.2.11
logLines
Već u prethodnom primjeru je korišten parametar logLines i ylogBase
kojima je data mogućnost podjele koordinatnih osa tako da glavne podione
tačke budu odredjene zadatom bazom logaritma. U narednom primjeru obje
ose su uključene parametrom xylogBase.
105
Kod
\begin{pspicture}(0,-1)(5,5)
104
\psaxes[axesstyle=frame,
logLines=all,
103
xylogBase=10,
subticks=5]
102
(5,5)
\end{pspicture}
101
100
100 101 102 103 104 105
Ukoliko se želi numeracija po bazi logaritma samo na osi x, odnosno samo
po osi y, tada je jedna od mogućnosti data narednim primjerom.
Kod
\begin{pspicture}(-0.5,-0.3)(3,1.2)
\psset{unit=4cm}
\psaxes[axesstyle=frame,logLines=x,xlogBase=10,Dy=0.5,
tickcolor=magenta!40,subtickcolor=blue!50,
tickwidth=1pt,xsubticks=10,ysubticks=5](2.5,3)
\end{pspicture}
1.0
0.5
0
100
3.2.12
101
102
103
subticks, tickwidth, subtickwidth
U prethodnim primjerima je objašnjena funkcija ovih parametara, a naredni
su rezultat njihovih razičitih kombinacija. Sljedeća slika ilustrije date parame49
3.2. Parametri
tre samo za osu x.
-5
-4
-3
-2
-1
0
1
2
3
4
-4
-3
-2
-1
0
1
2
3
4
-5
-4
-3
-2
-1
0
1
2
3
4
-5
-4
-3
-2
-1
0
1
2
3
4
-4
-4
-3
-3
-2
-2
-1
-1
0
0
1
1
2
2
3
3
4
4
-4
-3
-2
-1
0
1
2
3
4
-4
-3
-2
-1
0
1
2
3
4
-4
-3
-2
-1
0
1
2
3
4
-5
-5
5
5
5
5
Kod
\psset{arrowscale=3,yAxis=false}
\begin{pspicture}(-5,2)(5,12)
\psaxes[subticks=8]{->}(0,11)(-5,11)(5,11)
\psaxes[subticks=4,ticksize=-4pt 0,
labelsep=-20pt]{<-}(0,10)(-5,10)(5,10)
\psaxes[subticks=4,ticksize=-10pt 0]{->}(0,8)(-5,8)(5,8)
\psaxes[subticks=10,ticksize=0 -10pt]{->}(0,7)(-5,7)(5,7)
\psaxes[subticks=4,ticksize=0 10pt,
labelsep=-10pt]{<-}(0,6)(-5,6)(5,6)
\psaxes[subticks=4,ticksize=0 -10pt]{<-}(0,5)(-5,5)(5,5)
\psaxes[subticks=0,linecolor=Periwinkle!70]
{->}(0,4)(-5,4)(5,4)
\psaxes[subticks=0,tickcolor=magenta!55,
linecolor=Periwinkle!70]{<-}(0,3)(-5,3)(5,3)
\psaxes[subticks=5,tickwidth=2pt,subtickwidth=1pt,
subtickcolor=magenta!50]{->}(0,2)(-5,2)(5,2)
\end{pspicture}
Iste mogućnosti postoje i za y osu.
50
3.2. Parametri
4
4
4
4
4
3
3
3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
-1
-1
-1
-1
-1
-1
-1 -1
-1
-1
-2
-2
-2
-2
-2
-2
-2 -2
-2
-2
-3
-3
-3
-3
-3
-3
-3 -3
-3
-3
-4
-4
-4
-4
-4
Kod
\psset{arrowscale=3,xAxis=false}
\begin{pspicture}(0,-4)(10,4)
\psaxes[subticks=8,labelsep=-20pt]{->}(0,0)(0,-4)(0,4)
\psaxes[subticks=4]{->}(1,0)(1,4)(1,-4)
\psaxes[subticks=4,ticksize=0 4pt]{->}(2,0)(2,-4)(2,4)
\psaxes[subticks=4,ticksize=-4pt 0]{->}(3,0)(3,-4)(3,4)
\psaxes[subticks=4,ticksize=0 4pt]{->}(4,0)(4,4)(4,-4)
\psaxes[subticks=4,ticksize=-4pt 0,
linecolor=Periwinkle!80]{->}(5,0)(5,4)(5,-4)
\psaxes[subticks=0]{->}(6,0)(6,-4)(6,4)
\psaxes[subticks=0,labelsep=10pt,tickcolor=magenta!65,
linecolor=Periwinkle!80,labelsep=-20pt]
{->}(7.5,0)(7.5,4)(7.5,-4)
\psaxes[subticks=5,tickwidth=2pt,subtickwidth=1pt]
{->}(8.5,0)(8.5,-4)(8.5,4)
\psaxes[subticks=5,tickwidth=2pt,subtickwidth=1pt,
tickcolor=magenta!55,subtickcolor=Periwinkle!70,
ticksize=10pt,subticksize=0.75]
{->}(9.5,0)(9.5,4)(9.5,-4)
\end{pspicture}
Sve prethodne kombinacije date pojedinačno, moguće je koristiti za obje ose
kordinatnog sistema što se vidi iz narednih primjera.
51
3.2. Parametri
Kod
\begin{pspicture}(0,0)(5,5)
\psaxes[subticks=4,ticksize=6pt,
subticksize=0.5,
tickcolor=magenta!85,
subtickcolor=CadetBlue,
subtickwidth=1pt,
tickwidth=1.5pt]
{->}(0,0)(3.4,3.2)
\end{pspicture}
3
2
1
0
0
1
2
3
Kod
\begin{pspicture}(0,0)(5,5)
3
\psaxes[subticks=4,ticksize=6pt -3pt,
subticksize=0.5,
2
tickcolor=magenta!85,
subtickcolor=CadetBlue,
1
subtickwidth=1pt,
tickwidth=1.5pt]
0
{->}(0,0)(3.4,3.2)
0
\end{pspicture}
1
2
3
Kod
\begin{pspicture}(0,-0.5)(3.5,2.5)
\psaxes[subticks=5,
ticksize=-6pt 0,
tickcolor=magenta!85,
subticksize=0.5,
subtickcolor=CadetBlue,
subtickwidth=1pt]
{->}(0,0)(3.4,3.2)
\end{pspicture}
1
2
3
52
3
2
1
0
0
3.2. Parametri
Kod
\begin{pspicture}(0,-0.5)(3.5,2.5)
\psaxes[subticks=5,
ticksize=-6pt 3pt,
tickcolor=magenta!85,
subticksize=0.5,
subtickcolor=CadetBlue,
subtickwidth=1pt]
{->}(0,0)(3.4,3.2)
\end{pspicture}
3
2
1
0
0
1
Kod
\begin{pspicture}(0,-0.5)(3.5,2.5)
\psaxes[subticks=5,
ticksize=0 6pt,
subticksize=0.5,
linecolor=magenta!85]
{->}(-3,-2.3)
\end{pspicture}
-2
3
-1
0
-2
-3
-2
-1
0
0
-1
-2
2
1
0
0
53
0
-1
Kod
\begin{pspicture}(0,-0.5)(3.5,2.5)
\psaxes[subticks=5,
ticksize=-7pt 0]
{->}(-3,-2.3)
\end{pspicture}
Kod
\begin{pspicture}(0,0)(3,4.5)
\psaxes[subticks=5,
linecolor=magenta!85](3,4)
\end{pspicture}
2
1
2
3
3.2. Parametri
2
Kod
\begin{pspicture}(-2.5,-2.5)(2.5,2.5)
\psaxes[subticks=5,
ticksize=0 6pt,
subticksize=0.5]
{<-}(0,0)(2.5,2.5)(-2.5,-2.5)
\end{pspicture}
1
-2
-1
1
2
-1
-2
3.2.13
trigLabels i trigLabelBase
Osim mogućnosti da numeracija osa bude izražena po bazi logaritma imamo
mogućnost i trigonometrijskih oznaka. To bi bio rezultat dodjeljivanja
parametru trigLabels vrijednosti true. Sljedeće konstante su definisane
u paketu pstricks-add:
\def\PsPiFour{12.566371}
\def\PsPiTwo{6.283185}
\def\PsPi{3.14159265}
\def\PsPiH{1.570796327}
U narednim primjerima vrijednosti su podešene na:
\psset{trigLabels=true,labelFontSize=\small}
a svaka jedinica x-ose (1cm) je podiok, dok zadnjoj odgovara vrijednost od
6cm, kao što se vidi iz primjera.
Kod
\begin{pspicture}(-0.5,-1.25)(6.5,1.25)
\psaxes{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25)
\end{pspicture}
-1
π
2π 3π 4π 5π 6π
Sljedeći primjer će ilustrovati funkciju parametra trigLabelBase. Koordinatni sistem ima iste zadane koordinate, ali sada vrijednosti idu do 2π.
54
3.2. Parametri
Kod
\begin{pspicture}(-0.5,-1.25)(6.5,1.25)
\psaxes[trigLabelBase=3]
{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25)
\end{pspicture}
-1
π
3
2π
3
π
4π
3
5π
3
2π
U prethodnim primjerima, sa već navedenim paramerima, dati su koordinatni sistemi u koja je podijela vršena po jedan centimetar i koordinatni
početak kretao sa 0. Medjutim javlja se potreba i za drugačijom podjelom
i numeracijom. Ta podešavanja obezbjedjuju parametri dati u tabeli.
Parametar
Standarda
vrijednost
Funkcija
Ox
Oy
0
0
oznaka koordinatnog početka x ose
oznaka koordinatnog početka y ose
Dx
Dy
1
1
vrijednost za koji se povećava broj na x osi
vrijednost za koji se povećava broj na y osi
dx
dy
Dx×\psxunit
Dy×\psyunit
rastojanje izmedju podioka na x osi
rastojanje izmedju podioka na y
Osim navedenih parametara imamo još načina za promjenu osobina koordinatnog sistema. Upotebom komandi:
\pshlabel
\psvlabel
može se mijenjati boja numeracije koordinatnog sistema ili mjenjanjati veličina
brojeva. Promjene je moguće izvršiti pojedinačno za obje ose, kao naprimjer:
Kod
\def\pshlabel#1{\small #1}
čime bi se promijenila samo veličina brojeva na osi x. Takodjer se može
mijenjati izgled koordinatnog sistema parametrom axesstyle čija je standardna vrijednost axes, a moguće vrijednosti su axes/frame/none.
55
3.2. Parametri
3
Kod
\psaxes[Dx=0.5,dx=1,
axesstyle=frame,
tickstyle=top](-3,3)
2
1
-1.5 -1.0 -0.5
0
0
U narednom primjeru za koordinatni početak uzeta je vrijednost 1994 na osi
x i 0 na osi y. To se postiglo dodjeljivanjem vrijednosti 1994 parametru Ox i
vrijednosti 0 parametru Oy. Osa x je ozačena brojevima 1994, 1995,... u razmaku od 2 cm, dok je osa y označena sa 0, 10, 20,... u razmaku od 1cm. Vrijednost za koju se povećavaju brojevi na osi x, odredjuje se parametrom Dx,
kome je dodjeljena vrijednost 1. Time se postigla numeracija 1994,1995,...
Brojevi na osi y uvećavaju se za 10, odnosno parametru Dy je dodjeljena
vrijednost 10. Parametar dx i dy odredjuju rastojanje izmedju podionih
tačaka. Za osu x je uzeto rastojanje od 2cm, tj. dx=2cm, dok je za osu y
vrijednost ostala standardna, odnosno dy=1cm.
Kod
\renewcommand{%
\pshlabel}[1]{%
\scriptsize\color{magenta!40}#1}
\renewcommand{%
\psvlabel}[1]{%
\scriptsize\color{magenta!40}#1}
\begin{pspicture}(0,0)(6,5)
\psset{unit=0.66}
\psaxes[linecolor=blue,%
Ox=1994,Oy=0,%
Dx=1,Dy=10,%
dx=2,dy=1]%
(10.5,7.5)
\psline[linecolor=blue!20]%
(0,6.5)(2,6)(4,5.2)%
(6,3)(8,2.8)(10,2.4)
\end{pspicture}
56
70
60
50
40
30
20
10
0
1994
1995
1996
1997
1998
1999
3.3. Mijenjanje oznaka koordinatnih osa
3.3
Mijenjanje oznaka koordinatnih osa
Može se primjetiti da u svim do sada navedenim koordinatnim sistemima
oznake su bile brojevi, medjutim nije teško dobiti ni drugačije oznake koordinatnih osa ukoliko se za to ukaže potreba. U tu svrhu koristit će već
spomenute komande \pshlabel i \psvlabel, te komande \makeatletter,
\makeatother kao i paket arrayjob. Komandom:
\newarray\Naziv komande
definiše se nova komanda kojoj se sa
\readarray{Naziv komande}={vrijednost1&vrijednost2&...&vrijednostn}
dodjeljuje vrijednost, na primjer, ukoliko se na x osi trebaju predstaviti
mjeseci, jedna od mogućnosti je:
Kod
\begin{pspicture}(0,-1.5)(10,3.25)
\makeatletter
\def\pst@@@hlabel#1{\tiny\textcolor{mahogany}{\Mjeseci(#1)}}
\newarray{\Mjeseci}
\makeatother
\readarray{Mjeseci}{&Januar&Februar&Mart&April&Maj&Juni&
Juli&Avgust&Septembar&%
Oktobar&Novembar&Decembar}
\psset{yunit=0.5,xunit=1.1}
\psaxes[Ox=1,dy=1,Dy=2](12,6)
\end{pspicture}
12
10
8
6
4
2
0
Januar
Februar
Mart
April
Maj
Juni
57
Juli
Avgust Septembar Oktobar NovembarDecembar
3.3. Mijenjanje oznaka koordinatnih osa
Iz prethodnog primjera može se vidjeti da se oznake mogu mijenjati pojedinačno za obje ose, što je omogućeno komandama \pshlabel i \psvlabel.
Bitno je znati da je način uptrebe znaka & vrlo značajan, što se najbolje
može uočiti u narednom primjeru, gdje označavanje ose y kreće od koordinatnog početka. To je rezultat toga da je u dodjeljivanju vrijednosti za y
osu, početna vrijednost bila zadata.
Kod
\begin{pspicture}(0,-1.5)(10,3.25)
\makeatletter
\def\pst@@@hlabel#1{\tiny\textcolor{mahogany}{\Mjeseci(#1)}}
\newarray{\Mjeseci}
\makeatother
\readarray{Mjeseci}{&Januar&Februar&Mart&April&Maj&Juni&
Juli&Avgust&Septembar&%
Oktobar&Novembar&Decembar}
\makeatletter
\def\pst@@@vlabel#1{\small\textcolor{mahogany}{\Nivo(#1)}}
\makeatother
\newarray{\Nivo}
\readarray{Nivo}{Visoki&Srednji&Niski}
\psset{yunit=1.1,xunit=1.1}
\psaxes[Ox=1,Dy=1,Oy=1](12,3)
\end{pspicture}
Niski
Srednji
Visoki
Januar
Februar
Mart
April
Maj
Juni
Juli
Avgust Septembar Oktobar NovembarDecembar
Korištenjem parametra showorigin (true/false) omogućava se označavanje početka koordinatnog sistema ili potpuno izostavljanje oznaka. Prethodni
primjer u kome bi parametru showorigin bila dodijeljena vrijednost false
imao bi za rezultat:
58
3.3. Mijenjanje oznaka koordinatnih osa
Niski
Srednji
Januar
Februar
Mart
April
Maj
Juni
Juli
Avgust Septembar Oktobar NovembarDecembar
U toku postupka promjene oznaka koordinatnih osa bitno je staviti potrebne
komande unutar okruženja pspicture, kao što se vidi iz primjera, jer tada
komande djeluju lokalno i ne prouzrokuju neželjene posljedice. U protivnom,
rezultat bi bio promjena oznaka koordinatnih osa za sve nadalje navedene
kordinatne sisteme.
59
Poglavlje 4
Pst-plot
4.1
Komanda - \psplot
U ovom poglavlju obradjuje se crtanje grafika funkcija. Većinu komandi podržava paket pstricks-add, odnosno paket pst-plot, kao njegov sastavni
dio. Ovdje se pojavljuju nove komande koje daju mogućnost crtanja različitih objekata za iste zadate podatke. Prvi korak je obrazovanje podataka,
a zatim se oni unose kao koordinate tačaka. Parametar plotstyle odredjuje kakav će bit grafički prikaz za date podatke. Standardna vrijednost
je psline, dok su moguće vrijednosti: psdots, pspolygon, pscurve, psecurve i psccurve. U daljem se može vidjeti da podaci dati pri korištenju
plot komandi ne sadrže jedinice. Jedna od najjednostavnijih komandi je:
\fileplot*[par]{fajl}
Za njeno korištenje potreban je fajl koji sadrži podatke, odnosno listu koordinata (bez jedinica) na osnovu kog se crta grafički objekat. Podaci mogu
biti odvojeni zagradama { } ili ( ), zarezom i/ili praznim prostorom. Fajl s
podacima ne bi smio sadržavati ništa izuzev eventualnih komentara izdvojenih znakom %. Ova komanda podržava crtanje tačke, linije i poligona, dok
parametre showpoints, linearc i arrows nije moguće koristit. Komanda:
\listplot*[par]{lista}
takodjer omogućava čitanje podataka, bez navedenih ograničenja, čak i brže
nego prethodno spomenuta, ali postoji mogućnost prekoračenja dozvoljenog
broja podataka. Ova komanda zahtjeva da su podaci (koordinate tačaka)
60
4.1. Komanda - \psplot
odvojeni isključivo praznim prostorom, kao u primjeru:
Kod
\psaxes{->}(0,0)(6,6.5)
\listplot[plotstyle=curve,
showpoints=true,
linecolor=blue!30]
{1 1
1.5 1.2
2 1.6
2.5 2.3
3 3.2
3.5 4
4 4.5
4.5 4.8
5 5
5.5 5}
6
5
b
b
b
b
4
b
b
3
b
2
b
1
b
b
0
0
1
2
3
4
5
Takodjer postoji mogućnost upotrebe komande:
\dataplot*[par]{naredbe}
gdje se podaci moraju unijeti jednom od sledećih komandi:
\savedata{naredba}[podatak]
\readdata{naredba}[file]
Podaci se u ovoj komandi mogu odvajati zagradom { }, ali za ubrzavanje cijelog procesa je moguće koristiti zagrade [ ]. Ukoliko podatak koristimo samo
jednom, tada kombinacija komandi \dataplot i \readdata daju bolji rezultat od \fileplot. U sljedećem primjeru korištena je komanda \dataplot.
Podaci su uneseni komandom \savedata i sačuvani pod naredbom naziva
\mojipodaci. Komanda \dataplot poziva se na podatke sačuvane pod
imenom \mojipodaci i na osnovu njih crta krivu.
61
4.1. Komanda - \psplot
Kod
\psset{xunit=0.2cm,yunit=1.5cm}
\savedata{\mojipodaci}[
{{0,0}{1,0.946083}{2,1.60541}
{3,1.84865}{4,1.7582}{5,1.54993}
{6,1.42469}{7,1.4546}{8,1.67419}
{9,1.66504}{10,1.65835}{11,1.57831}
{12,1.50497}{13,1.49936}{14,1.55621}
{15,1.61819}{16,1.6313}{17,1.59014}
{18,1.53661}{19,1.51863}{20,1.54}}]
\dataplot[plotstyle=curve,
showpoints=true,
dotstyle=triangle]
{\mojipodaci}
\psline{<->}(0,2)(0,0)(20,0)
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
ut
Jedna od najznančajnijih komandi je:
\psplot[par]{xmin }{xmax }{funkcija}
iz razloga što više nije potrebno unositi polazne podatke, odnosno koordinate tačaka, za crtanje objekta. Ovom komandom se postiže da je funkcija
zadata preko promjenjive x. Funkcija f(x) ima za domenu naznačeni interval
(xmin , xmax ), kao na primjer:
Kod
\psplot[plotpoints=200]{0}{720}{x sin}
gdje x uzima vrijednosti od 0 do 720 stepeni. Ovdje se pojavljuje i novi
parametar plotpoints čija je standardna vrijednost 50, a njime se odredjuje
broj tačaka na kojim se bazira rad komande \psplot. Konkretno u prethodnom primjeru vrijednost funkcije sin(x) se računa približno za svakih 3.6
stepeni, a zatim se dobijene tačke spajaju sa \psline. U cilju dobijanja
preciznijeg grafika funkcije preporučljivo je parametru plotpoints dodijeliti
veću vrijednost od standardne. Može se primjetiti da je zapis funkcije sin(x)
drugačiji od uobičajenog. Inače, grafici funkcija crtani komandom \psplot
pišu se u inverznoj poljskoj notaciji (IPN). Naredni primjeri pokazuju način
rad IPN-je.
62
4.1. Komanda - \psplot
Funkcija
IPN
ln(x)
→
x ln
x2 − 3x
→
x 2 exp 3 x sub
q
x3
x−1
→
x 3 exp x 1 sub div sqrt
x4 ln x1
→
x 4 exp 1 x div sqrt
√
x−x x
→
x x x sqrt mul sub
x
x2 +1
→
x x 2 exp 1 add div
→
x x mul 1 sub 0.5 mul x x mul add div
→
x sin x 2 div 2 exp cos mul
0.5(t2 −1)
t2 +1
sinx · cos( x2 )2
Možda će sljedeće ilustacije približiti način rada IPN-e. U narednom primjeru predstavljena je funkcija x3 − x. Postupak je sljedeći. Kreće se od dva
podatka x i 3, koji praćeni operacijom exp, daju x3 , da bi u konačnici, za
date podatke x3 i x, dodavanje operacije sub dalo funkciju x3 − x.
x3 − x
x
x3
x
3
√
2
Nadalje su prezentovane funkcije x + 2x − 1 i xx3 −1
. Polazni podaci za
+1
√
funkciju x + 2x − 1 su x i x 2. Prvi podatak praćen operacijom sqrt
√
daje x, dok druga dva praćena operacijom mul daju 2x. Sada su polazni
√
√
podaci x i 2x, koji praćeni operacijom add daju x+2x. Dobijeni podatak
√
√
x + 2x i 1, sa operacijom sub daju funkciju x + 2x − 1. Postupak je isti
i u trećem primjeru.
63
4.1. Komanda - \psplot
√
√
√
x + 2x
x
x
x2 −1
x3 +1
x + 2x − 1
1
x2 − 1
2x
2
x2
x
x
x3 + 1
x3
1
2
x
1
3
U prethodnim primjerima su upotrebljene neke od definisanih matmematičkih
funkcija, a naredna tabela sadrži većinu tih funkcija.
Operacija
add
sub
mul
div
exp
mod
sqrt
neg
abs
ceiling
floor
sin
cos
atan
log
ln
Značenje
sabiranje
razlika
množenje
dijeljenje
stepen broja
mod
korijen
negativan broj
apsolutna vrijednost
funkcija cijeli dio
funkcija cijeli dio
sinus ugla u stepenima
kosinus ugla u stepenima
arctg ugla u stepenima
logaritam broja po bazi 10
logaritam broja po bazi e
Sintaksa
broj 1 broj 2 add
broj 1 broj 2 sub
broj 1 broj 2 mul
broj 1 broj 2 div
broj 1 broj 2 exp
broj 1 broj 2 mod
broj sqrt
broj neg
broj abs
broj ceiling
broj floor
broj sin
broj cos
broj atan
broj log
broj ln
U cilju boljeg razumjevanja datih funkcija, prethodne su ilustrovane primjerima u tabeli.
64
4.1. Komanda - \psplot
Operacija
add
sub
mul
div
exp
mod
sqrt
neg
abs
ceiling
floor
sin
cos
atan
log
ln
Kod
7 2 add
7 2 sub
7 2 mul
7 2 div
7 2 exp
7 2 mod
16 sqrt
7
neg
-7 abs
7.6 ceiling
7.6 floor
30 sin
60 cos
1
atan
100 log
2.71828182 ln
Vrijednost
9
5
14
3.5
49
1
4
-7
7
8
7
0.5
0.5
45
2
1
Naredna tabela sadrži parametre koje je moguće koristiti uz komande \psplot
i \parametricplot.
Parametar
Parametar
Parametar
linestyle
dash
arrowsdotsize
linewidth
linecolor
shadow
shadowcolor
dotstyle
plotstyle
labelFontSize
showpoints
algebraic
fillcolor
plotpoints
xylogBase
xunit
polarplot
Parametar algebraic, koji je predvidjen za komandu \psplot, omogućava
ispis funkcija u algebarskom obliku. Definisane operacije su sabiranje, oduzimanje, množenje, dijeljenje kao i stepenovanje, dok su od funkcija definisane:
sin, cos, tan, asin, acos
log, ln
ceiling, floor, truncate, round
sqrt
abs
fact
u radijanima
kvdratni korijen
apsolutna vrijednost
faktorijel
Parametar algebraic zahtjeva, kao što se vidi iz tabele, vrijednost ugla
u radijanima. Ukoliko je ugao α zadat u stepenima tada se korištenjem
65
4.1. Komanda - \psplot
0
formule: ρ = α∗180
dobija ugao ρ u radijanima. Na primjer, ukoliko je
π
funkcija zadana u IPN-ji, tada je ugao dat u stepenima, kao u narednom
primjeru:
Kod
\begin{pspicture}(-3.25,-.5)(3.25,6)
\psaxes{->}(0,0)(-3.25,-.25)(3.25,6)
\psplot[polarplot]{-68}{68}
{x sin x cos 2 exp div}
\end{pspicture}
5
4
3
2
1
-3
-2
-1
1
2
3
Medjutim, uključivanjem parametra algebraic potrebno je ugao od 680
pretvoriti u radijane i dobiti vrijednost 1.186 i tada bi kod bio:
Kod
\begin{pspicture}(-3.25,-.5)(3.25,6)
\psaxes{->}(0,0)(-3.25,-.25)(3.25,6)
\psplot[polarplot,algebraic]
{-1.186}{1.186}
{sin(x)/(cos(x)^2)}
\end{pspicture}
5
4
3
2
1
-3
-2
-1
1
2
3
U narednoj tabeli su navedeni kodovi funkcija u IPN-i kao i kod tih funkcija
pisan uz upotrebu parametra algebraic.
IPN
x ln
x 2 exp
x 2 exp neg
x 3 exp x sub
1 x div cos 4 mul
x cos 2.71 x neg 10 div exp mul
t cos t sin
algebraic
ln(x)
x∧ (2)
x∧ (−2)
x∧ (3) − x
4 ∗ cos(1/x)
cos(x) ∗ 2.71∧ (−x/10)
cos(t)|sin(t)
Sljedeća dva primjera, gdje su dati grafici funkcija sin2 (x) i sin(x)cos((x/2)2 ),
ilustracija su primjene komande \psplot sa funkcijama u IPN-i.
66
4.1. Komanda - \psplot
Kod
\psset{xunit=1.2pt}
\psplot[linecolor=blue!20,
linewidth=1.5pt,
plotstyle=curve]{0}{90}
{x sin dup mul}
\psline{->}(0,-1)(0,1)
\psline{->}(100,0)
Kod
\psset{xunit=1.2pt}
\psplot[linecolor=blue!40,
plotpoints=100]
{0}{90}{x sin x 2 div 2
exp cos mul}
\psline{->}(0,-1)(0,1)
\psline{->}(100,0)
Osim komande pspicture, za okruženje je moguće koristiti komandu definisanu sa:
\psgraph[opcije arrows-a]{arrows}
(xOrig,yOrig)(xMin,yMin)(xMax,yMax){xDužina,yDužina}
...
\endpsgraph
gdje (xOrig,yOrig) odredjuje kordinatni početak, (xMin,yMin) (xMax,yMax)
krajnje tačke koordinatnih osa, a {xDužina,yDužina} njihovu dužinu. U
naredna tri primjera dati su grafici funkcija 2 ∗ sin(x), ln(x) i 3 ∗ cos(x) ∗
2.71∧ (−x/10) uradjeni primjenom parametra algebraic.
Kod
\psgraph[arrows=->](-10,-3)(10,2){\linewidth}{6cm}
\psset{algebraic,plotpoints=101}
\psplot[linecolor=yellow,
linewidth=4\pslinewidth]
{-10}{10}{2*sin(x)}%
\psplot[linecolor=blue,
showpoints=true]
{-10}{10}{2*sin(x)}
\endpsgraph
67
4.1. Komanda - \psplot
y
b b
b
b
b
b
b
b
b
b
4
b
b
b
b
b
b
b
b
b
b
b
b
b
b
1
b b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b b b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b b
b
b
b
2
b
b
b
b
b
3
b b
b
b
b
b
b
b
b
b
b
x
0
0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19
Kod
\psgraph[arrows=->](0,-5)(15,3){12cm}{5cm}
\psset{algebraic,plotpoints=501}
\psplot[linecolor=yellow,
linewidth=4\pslinewidth]
{0.01}{15}{ln(x)}%
\psplot[linecolor=blue]
{0.01}{15}{ln(x)}
\psplot[linecolor=yellow,
linewidth=4\pslinewidth]
{0.01}{15}{3*cos(x)*2.71^(-x/10)}
\psplot[linecolor=red,
showpoints=true,
plotpoints=51]
{0.01}{15}{3*cos(x)*2.71^(-x/10)}
\endpsgraph
y
b
b
b
7
b
6
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
3
b
b
b
b
b
b
b
b
b
4
b
b
b
5
b
b
b
b
b
b
b
2
1
x
0
0
1
2
3
4
5
6
7
8
68
9
10
11
12
13
14
4.1. Komanda - \psplot
U narednim primjerima su ilustrovane neke od definisanih funkcija za parametar algebraic, a podešavanje osobina je izvršeno sa:
\psset{plotpoints=1000,linewidth=1pt,unit=0.25cm,algebraic}
8
7
6
Kod
\begin{pspicture}(-8,-8)(8,8)
\psplot[linecolor=blue!40]
{-8}{8}{ceiling(x)}
\end{pspicture}
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-8 -7 -6 -5 -4 -3 -2 -1 0
1
2
3
4
5
6
7
8
-8 -7 -6 -5 -4 -3 -2 -1 0
1
2
3
4
5
6
7
8
-8 -7 -6 -5 -4 -3 -2 -1 0
1
2
3
4
5
6
7
8
8
7
6
5
Kod
\begin{pspicture}(-8,-8)(8,8)
\psplot[linecolor=green]
{-8}{8}{truncate(x)}
\end{pspicture}
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
8
7
6
5
Kod
\begin{pspicture}(-8,-8)(8,8)
\psplot[linecolor=CadetBlue]
{-8}{8}{floor(x)}
\end{pspicture}
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
69
4.1. Komanda - \psplot
8
7
6
Kod
\begin{pspicture}(-8,-8)(8,8)
\psplot[linecolor=red]
{-8}{8}{round(x)}
\end{pspicture}
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-8 -7 -6 -5 -4 -3 -2 -1 0
1
2
3
4
5
6
7
8
-8 -7 -6 -5 -4 -3 -2 -1 0
1
2
3
4
5
6
7
8
-8 -7 -6 -5 -4 -3 -2 -1 0
1
2
3
4
5
6
7
8
-8 -7 -6 -5 -4 -3 -2 -1 0
1
2
3
4
5
6
7
8
8
7
6
Kod
\begin{pspicture}(-8,-8)(8,8)
\psplot[linecolor=blue]
{-8}{8}{div(mul(4,x),7)}
\end{pspicture}
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
8
7
6
Kod
\begin{pspicture}(-8,-8)(8,8)
\psplot[linecolor=CornflowerBlue]
{-8}{8}{abs(x)}
\end{pspicture}
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
8
7
6
Kod
\begin{pspicture}(-8,-8)(8,8)
\psplot[linecolor=magenta]
{-8}{8}{abs(3*cos(x))+1}
\end{pspicture}
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
I sljedeći primjeri ukazuju na mogućnosti koje pruža komanda \psplot.
70
4.1. Komanda - \psplot
Kod
\psline[linestyle=dotted,
linewidth=0.5pt](-3,-3)(3,3)
\psplot[plotstyle=curve,
linecolor=magenta,
linewidth=1.5pt]
{-1.4}{1.4}
{x 3 exp}
\psplot[plotstyle=curve,
linecolor=CadetBlue,
linewidth=1.5pt]
{0}{3}%
{x 0.333 exp}
\psplot[plotstyle=curve,
linecolor=CornflowerBlue,
linewidth=1.5pt]
-3
-2
-1
{-3}{0}
{x -1 mul 0.333 exp -1 mul}
p
y = − 3 |x|
\rput[l](-0.25,3.5){$\mathbf{y}$}
\rput[l](3.5,-0.25){$\mathbf{x}$}
\rput[l](1.5,2.5){$y=x^3$}
\rput[l](1.25,0.5){$y=+\sqrt[3]{|x|}$}
\rput[l](-3,-1.7){$y=-\sqrt[3]{|x|}$}
y
y = x3
2
1
1
-1
-2
-3
Kod
\psplot[plotstyle=curve,linecolor=CornflowerBlue]{1.1}{4}%
{x 3 exp x 1 sub div sqrt}
\psplot[plotstyle=line,linecolor=CornflowerBlue]
{-1.5}{4}{x 1 2 div add}
\psplot[plotstyle=curve,linecolor=CornflowerBlue]{-4}{0}%
{x 3 exp x 1 sub div sqrt}
\psplot[plotstyle=line,linecolor=CornflowerBlue]{-4}{1}
{x neg 1 2 div sub}
\psline[linecolor=black!30](1,-1)(1,4)
\rput[l](-4,1){$y=-x-\frac{1}{2}$}
\rput[l](2,2){$y=x+\frac{1}{2}$}
\rput[l](1.1,-1){$y=1$}
\rput[l](-2.5,3){$y=\sqrt{\frac{x^{3}}{x-1}}$}
71
p
y = + 3 |x|
2
x
4.1. Komanda - \psplot
y=
q
x3
x−1
3
y =x+
2
y = −x −
-4
-3
1
2
-2
1
2
1
-1
1
-1
Kod
\psplot[plotstyle=curve,
linecolor=magenta]
{0}{1.5}%
{x x sqrt mul x add}
\psplot[plotstyle=curve,
linecolor=magenta]
{0}{3}
{x x x sqrt mul sub}
\rput[l](2,3){$y=x+x\sqrt{x}$}
\rput[l](2.5,-1){$y=x-x\sqrt{x}$}
2
y=1
3
√
y =x+x x
3
2
1
0
0
Kod
\psplot[plotstyle=curve,
linecolor=CadetBlue,
algebraic]
{0.1}{1.5}
{x^(4)*ln(1/x)}
\rput[l](0.5,1.5){$y=x^{4}ln\frac{1}{x}$}
1
2
2
y = x4 ln x1
1
0
0
72
3
√
y =x−x x
1
2
4.2. Komanda - \parametricplot
4.2
Komanda - \parametricplot
Osim navedenih komandi koje se koriste za crtanje funkcija zadanih eksplicitno, postoji potreba predstavljanja funkcija zadanih u parametarskom
obliku. Taj problem je riješen komandom:
\parametricplot*[par]{tmin }{tmax }{funkcija}
Na primjer, za funkciju zadanu sa:
x=
t
1 + t2
y=
t3
1 + t2
pri čemu je −3 ≤ t ≤ 3, primjena komande \parametricplot je sljedeća:
2
Kod
\begin{pspicture}(-2,-2)(2,2)
\parametricplot[plotstyle=curve,%
linecolor=CadetBlue]%
{-2}{2}%
{t t 2 exp 1 add div t 3 exp
t 2 exp 1 add div}
\end{pspicture}
1
0
-1
-2
-2
-1
0
1
2
Iz primjera se vidi da se u prostor definisan za funkciju unosi zadato x
i y. Postupak je jednostavan, iako pisan u IPN-ji, jer odmah nakon unosa
funkcije x, nastavlja se unos funkcije y. Slijedi još nekoliko primjera upotrebe
komande \parametricplot.
Kod
\parametricplot[plotstyle=curve,%
linecolor=cerulean,
linewidth=1.5pt,
plotpoints=200]%
{-360}{360}%
{t 1.5 mul sin t
2 mul 60 add sin}
73
1
x = sin1.5t
y = sin(2t + π3 )
0
-1
-1
0
1
4.2. Komanda - \parametricplot
Kod
\parametricplot[linecolor=magenta,
plotpoints=1000]
{-30}{70}{2 t cos
mul 3 t sin mul}
2
1
0
1
2
3
-1
-2
Kod
\parametricplot[plotstyle=curve,%
linecolor=Periwinkle!20,
linewidth=1.5pt,
plotpoints=200]%
{-1.85}{1.85}%
{t t mul 1 sub t t mul 1 add div
t t mul 1 sub t mul t t mul 1 add div}
\parametricplot[plotstyle=curve,%
linecolor=Periwinkle!40,
linewidth=1.5pt,
plotpoints=200,
linestyle=dashed]%
{-5}{5}%
{t t mul 1 sub 0.25 mul t t mul 1 add div
t t mul 1 sub t mul 0.25 mul t t mul 1 add div}
\parametricplot[plotstyle=curve,%
linecolor=Periwinkle!60,
linewidth=1.5pt,
plotpoints=200,
linestyle=dotted]%
{-1}{1}%
{t t mul 1 sub 0.75 mul t t mul 1 add div
t t mul 1 sub t mul 0.75 mul t t mul 1 add div}
1
0
x(t) =
a(t2 −1)
t2 +1
y(t) =
at(t2 −1)
t2 +1
a=1; 0.25; 0.75
-1
-1
0
74
1
4.3. Parametar polarplot
Ukoliko se koristi parametar algebraic, tada se razdvajanje zadane parametarske funkcije vrši znakom |. Na primjer, funkcija zadana sa: x = cost i
y = sint korištenjem parametra algebraic piše se cos(t)|sin(t).
Kod
\parametricplot[algebraic,
linecolor=CornflowerBlue]
{-3.14}{3.14}{cos(t)|sin(t)}
Kod
\parametricplot[algebraic,
linecolor=magenta,
plotpoints=1000]
{-30}{60}
{4*sqrt(abs(floor(t)))/10|t/20}
2
1
0
1
2
3
-1
-2
4.3
Parametar polarplot
U toku grafičkog predstavljanja funkcija, ponekad se može uprostiti postupak konstrukcije prelaženjem na odgovarajuću jednačinu u polarnim koordinatama, odnosno stavljajući x = ρcosθ i y = ρsinθ. Komanda \psplot
uključivanjem parametra polarplot omogućava prelazak na polarne koordinate. Naprimjer, ukoliko se želi predstaviti kriva zadata jednačinom
(x2 + y 2 − ax)2 = a2 (x2 + y 2 ) (kardioida) prelaskom na polarne koordinate
dobija se ρ = 2a(1+cosθ). Područje definicije funkcije predstavlja vrijednost
ugla koji se dodjeljuje zadatoj trigonometrijskoj funkciji. U pisanju funkcije
u INP-ji umjesto ugla θ piše se x. Naredni kod ilustruje postupak pisanja.
Kod
\psplot[polarplot,
plotstyle=curve,
linecolor=blue!20,
plotpoints=500]
{0}{360}
{1 x cos add 2 mul}
2
1
-1
1
-1
-2
75
2
3
4
4.4. Komanda - \pscustom
Sljedeće slike predstavljaju grafike funkcija zadanih jednačinama ρ = 4 +
cos5θ i ρ = 2cos2θ, gdje ugao θ uzima vrijednosti od 00 do 3600 .
Kod
\psplot[polarplot,
plotstyle=curve,
linecolor=blue!20,
plotpoints=500]
{0}{360}%
{5 x mul cos 4 add}
2
1
-2
-1
1
2
3
-1
-2
-3
Kod
\psplot[polarplot,
plotstyle=curve,
linecolor=blue!20,
plotpoints=500]
{0}{360}
{2 x mul cos 2 mul}
2
1
-2
-1
1
2
-1
-2
4.4
Komanda - \pscustom
Korištenjem komande
\pscustom[par]{naredba}
moguće je osjenčiti dijelove izmedju krivih. Parametar liftpen=0/1/2
(standardna vrijednost je 0) odredjuje način sjenčenja krivih. Primjeri ilustruju svaku od mogućnosti.
76
4.4. Komanda - \pscustom
3
Kod
\pscustom[linewidth=2pt,
fillstyle=vlines,
hatchcolor=blue!20]{
\pscurve(0,2)(1,2.5)(2,1.5)(4,3)
\pscurve(4,1)(3,0.5)(2,1)(1,0)(0,0.5)}
2
1
0
Kod
\pscustom[linewidth=2pt,
fillstyle=crosshatch,
hatchcolor=blue!20]{
\pscurve(0,2)(1,2.5)(2,1.5)(4,3)
\pscurve[liftpen=1](4,1)(3,0.5)
(2,1)(1,0)(0,0.5)}
77
1
2
3
4
0
1
2
3
4
0
1
2
3
4
3
2
1
0
3
Kod
\pscustom[linewidth=2pt,
fillstyle=solid,
fillcolor=blue!10]{
\pscurve(0,2)(1,2.5)(2,1.5)(4,3)
\pscurve[liftpen=2](4,1)(3,0.5)
(2,1)(1,0)(0,0.5)}
Kod
\pscustom[fillstyle=solid,
fillcolor=yellow!40,
linestyle=none]{%
\psline(0,0)(0,-2)
\psplot{0.01}{1}{x log}}
\psplot[linecolor=blue!30]
{0.01}{4.5}{x log}
\psaxes[labelFontSize=\scriptsize]
{->}(0,0)(-.5,-2)(4.5,1)
0
2
1
0
1
-1
-2
2
3
4
4.4. Komanda - \pscustom
Kod
\psaxes{->}(0,0)(-3,-3)(6,6)
\pscustom[fillstyle=solid,
fillcolor=blue!40,
linestyle=none,algebraic]{%
\psplot{1}{3}{sin(x)*cos(x)-sqrt(1+x^2)+6}
\psline(3,0)(1,0)}
\psplot[algebraic]{-2}{6}
{sin(x)*cos(x)-sqrt(1+x^2)+6 }
5
4
3
2
1
-3
-2
-1
-1
-2
-3
Kod
\psset{xunit=0.01cm,linewidth=0.5pt,
plotpoints=200,plotstyle=curve}
\pscustom[linestyle=none,
fillstyle=solid,
fillcolor=red!30]{%
\psplot{0}{45}{x sin}
\psplot{45}{0}{x cos} }
\pscustom[linestyle=none,
fillstyle=solid,
fillcolor=green!30]{%
\psplot{45}{225}{x sin}
\psplot{225}{45}{x cos}}
\pscustom[linestyle=none,
fillstyle=solid,
fillcolor=blue!30]{%
\psplot{225}{360}{x sin}
\psplot[liftpen=1]{360}{225}{x cos}}
\psplot{0}{360}{x sin}
\psplot{0}{360}{x cos}
\psaxes[ticks=none,labels=none]
{->}(0,0)(0,-1)(380,1.5)
\psline[linecolor=blue](45,-1.5)(45,1.2)
\psline[linecolor=blue](225,-1.5)(225,1.2)
\psline[linecolor=blue](360,-1.5)(360,1.2)
78
1
2
3
4
5
4.5. Komanda - \psplotTangent
4.5
Komanda - \psplotTangent
U toku grafičkog predstavljanja funkcija javlja se potreba za crtanjem tangente u datoj tački. Taj problem je riješen komandom \psplotTangent,
koja je definisana sa:
\psplotTangent[par]{x}{d}{funkcija}
Vrijdednosti x, odredjuje tačku u kojoj se crta tangenta krive. Osim toga, x
odredjuje i sredinu tangente, dok dužina d odredjuje polovinu dužine tangente. U narednom primjeru je predstavljena tangenta funkcije f (x) = 10
x,
10
u tački (3, 3 ), gdje je d=2 cm.
Kod
\psplot[linewidth=2pt,algebraic,
linecolor=blue!20]
{1.5}{5}{10/x}
\psplotTangent[algebraic,
linecolor=magenta!40]
{3}{2}{10/x}
5
4
3
2
1
0
0
4.6
1
2
3
4
5
Komanda - \psStep
Osim prethodno spomenutih komandi koje omogućava paket pstricks-add tu
je i komanda:
\psStep[opcije](x1 , x2 ){n}{funkcija}
gdje je sa (x1 , x2 ) odredjena domena funkcije, sa n broj pravougaonika
koji će se crtati, a funkcija je matematička funkcija data u algebarskom
obliku (paramtar algebraic=true) ili u IPN-i. Moguće opcije su StepType=lower/upper/Riemann, gdje je lower standardna vrijednost.
Slje-dećih nekoliko primjera ilustruju svaku od mogućnosti.
79
4.6. Komanda - \psStep
1
Kod
\psplot[linewidth=1pt]
{-3.5}{3.5}
{Euler^(-x^2/2)}
-3
-2
-1
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
1
Kod
\psStep[fillstyle=solid,
fillcolor=blue!20]
(-3.5,3.5){10}
{Euler^(-x^2/2)}
-3
-2
-1
Kod
\psStep[fillstyle=solid,
fillcolor=blue!20,
StepType=upper]
(-3.5,3.5){10}
{Euler^(-x^2/2)}
1
-3
-2
-1
Kod
\psStep[fillstyle=solid,
fillcolor=blue!20,
StepType=Rieman]
(-3.5,3.5){10}
{Euler^(-x^2/2)}
1
-3
80
-2
-1
4.6. Komanda - \psStep
Kod
\psStep[fillstyle=solid,
fillcolor=blue!20,
StepType=lower]
(-3.5,0){5}
{Euler^(-x^2/2)}
\psStep[fillstyle=solid,
fillcolor=blue!20,
StepType=upper]
(0,3.5){5}
{Euler^(-x^2/2)}
1
-3
-2
-1
Kod
\psStep[fillstyle=solid,
fillcolor=blue!20,
StepType=upper]
(-3.5,0){5}
{2.71828^(-x^2/2)}
\psStep[fillstyle=solid,
fillcolor=blue!20,
StepType=lower]
(0,3.5){5}
{2.71828^(-x^2/2)}
0
1
2
3
0
1
2
3
1
-3
-2
-1
Naredni primjeri su složeniji i predstavljaju različite mogućnosti kombinovanja mogućih vrijednosti parametra StepType.
Kod
\psaxes{->}(10,3)
\psplot[plotpoints=100,linewidth=1.5pt,algebraic,%
labelFontSize=\footnotesize]{0}{10}{sqrt(x)}
\psStep[linecolor=magenta,StepType=upper,
fillstyle=hlines](0,9){9}{x sqrt}
\psStep[linecolor=blue,
fillstyle=vlines](0,9){9}{x sqrt}
81
4.6. Komanda - \psStep
2
1
0
0
1
2
3
4
5
6
7
8
9
Kod
\psaxes{->}(0,0)(0,-2.25)(10,3)
\psplot[plotpoints=200,linewidth=1.5pt,algebraic,%
labelFontSize=\footnotesize]{0}{10}{sqrt(x)*sin(x)}
\psStep[linecolor=magenta,StepType=upper,
algebraic](0,9){20}{sqrt(x)*sin(x)}
\psStep[linecolor=blue,linestyle=dashed,
algebraic](0,9){20}{sqrt(x)*sin(x)}
2
1
0
1
2
3
4
5
6
7
8
-1
-2
Kod
\psset{yunit=1.25cm}
\psaxes{->}(0,0)(0,-1.5)(10,1.5)
\psStep[linecolor=magenta!40,StepType=Riemann,
algebraic,fillstyle=solid,
fillcolor=black!10](0,10){50}
{sqrt(x)*cos(x)*sin(x)}
\psplot[linewidth=1.5pt,algebraic,%
labelFontSize=\footnotesize]{0}{10}
{sqrt(x)*cos(x)*sin(x)}
82
9
4.7. Primjeri
1
0
1
2
3
4
5
6
7
8
9
-1
Kod
\psset{unit=1.25cm}
\begin{pspicture}[plotpoints=200](-0.5,-3)(10,2.5)
\psStep[algebraic,fillstyle=solid,fillcolor=yellow!30]
(0.001,9.5){40}{2*sqrt(x)*cos(ln(x))*sin(x)}
\psStep[StepType=Riemann,algebraic,fillstyle=solid,
fillcolor=blue!30](0.001,9.5){40}
{2*sqrt(x)*cos(ln(x))*sin(x)}
\psaxes{->}(0,0)(0,-2.75)(10,2.5)
\psplot[algebraic,linecolor=white,labelFontSize=\footnotesize]
{0.001}{9.75}{2*sqrt(x)*cos(ln(x))*sin(x)}
\end{pspicture}
2
f (x) = 2 ·
1
√
x · cos x · sin x
0
1
2
3
4
5
6
7
8
9
-1
-2
4.7
Primjeri
Koristeći paket pst-eucl na raspolaganju su komande koje su često potrebne,
a od kojih su neke ilustrovane u narednim primjerima.
83
4.7. Primjeri
Kod
\pstTriangle[PointSymbol=square,
linecolor=magenta]
(1.5,-1){A}(0,1){B}
(-1,-0.5){C}
B
rs
C
rs
rs
A
Kod
\pstTriangle[PointSymbol=none]
(4,1){A}(1,3){B}(5,5){C}
\pstCircleABC[CodeFig=true,
CodeFigColor=blue,
linecolor=magenta]
{A}{B}{C}{O}
C
b
B
O
A
Kod
\pstTriangle[PointSymbol=none,
C
linecolor=magenta!10]
(1,1){A}(-1,-1){B}(-2,1){C}
\pstMiddleAB[linecolor=magenta!40]{A}{B}{C’}
A′
\pstMiddleAB[linecolor=magenta!40]{B}{C}{A’}
\pstMiddleAB[linecolor=magenta!40]{C}{A}{B’}
B′
A
b
b
b
C′
B
Kod
\psset{PointSymbol=none}
\pstTriangle(2;15){A}(2;85){B}(2;195){C}
\psset{PointName=none}
\pstTriangle[PointNameA=default]
(2;-130){B’}(2;15){A’}(2;195){C’}
\pstTriangle[PointNameA=default]
(2;-55){B’’}(2;15){A’’}(2;195){C’’}
\pstRightAngle[linecolor=red]{C}{B}{A}
\pstRightAngle[linecolor=blue,
RightAngleType=suisseromand]{A}{B’}{C}
\pstRightAngle[linecolor=magenta,
RightAngleType=germand]{A}{B’’}{C}
\psset{arcsep=\pslinewidth}
\pstMarkAngle[linecolor=cyan,Mark=MarkHash]{A}{C}{B}{$\theta$}
\pstMarkAngle[linecolor=red,arrows=->]{B}{A}{C}{$\gamma$}
84
4.7. Primjeri
B
γ
A
θ
C
B′
B ′′
Kod
\pstTriangle[PointSymbol=none]
(3.5,1){A}(1,4){B}
(5,4.2){C}
\psset{linecolor=magenta!40,
CodeFigColor=magenta,
nodesep=-1}
\pstMediatorAB[PointSymbolA=none]
{A}{B}{I}{M_I}
\psset{PointSymbol=none,
PointNameB=none}
\pstMediatorAB[CodeFig=true]
{A}{C}{J}{M_J}
\pstMediatorAB[PosAngleA=45,
linecolor=blue]
{C}{B}{K}{M_K}
85
C
B
K
J
b
I
MI
A
4.8. Komanda - \multido
Kod
\pstTriangle[PosAngleA=180]
(3.5,1){A}(1,4){B}
(5,4.2){C}
\psset{CodeFig=true,
B
PointSymbol=none}
\pstProjection[PosAngleA=-90]{B}{A}{C}
\pstProjection{B}{C}{A}
\pstProjection[PosAngleA=90]{A}{C}{B}
\pstInterLL[PosAngleA=135,
PointSymbol=square]
{A}{A’}{B}{B’}{H}
4.8
A′
b
b
C
H
rs
B′
C′
A
b
Komanda - \multido
Za uvodjenje ove komande potreban je paket multido. Komanda je definisana sa:
\multido{varijabla}{broj}{objekat}
gdje se pod objektom podrazumijeva ono što se želi ponavljati, a što se
definiše kao varijabla, dok je broj ustvari broj ponavljanja koje je potrebno
uraditi. Ono što je najinteresantnije je deklaracija varijable, koja ima oblik:
varijabla=početna vrijednost + priraštaj.
Varijabla je naziv komande koja će biti korištena u dijelu označenom sa
objekat. Prvo slovo u imenu varijable odredjuje njen tip. Postoje četiri tipa
varijabli i to su:
Dimenzija (d ili D) - gdje inicijalna vrijednost i priraštaj trebaju biti dimenzije, odnosno dužine, kao na primjer: \dx=4cm+5pt.
Broj (n ili N) - gdje inicijalna vrijednost i priraštaj trebaju biti cijeli brojevi
ili brojevi sa istim brojem decimala. Najveći broj decimala je osam. Izuzetak čini inicijalna vrijednost, gdje se može pojaviti cijeli broj. Na primjer,
\n = 3+0.75 ili \Nx = 5.30+-1.25. (Ovdje nije greška već je riječ o programerskom zapisu varijable.)
Cijeli broj (i ili I) - gdje su inicijalna vrijednost i priraštaj cijeli brojevi,
kao:\I=2+-1. Ovo daje isti rezultat kao kada se koristi varijabla broj, ali je
postupak brži.
Realan broj (r ili R) - gdje inicijalna vrijednost i priraštaj trebaju biti cijeli
brojevi ili brojevi sa najviše četiri decimale, kao \ry=4.2+1.05.
86
4.8. Komanda - \multido
Naredni primjeri su jednostavni i ilustruju komandu \multido. U prvom
primjeru cilj je dobiti ispis riječi TEX devet puta. Kako je upitanju riječ,
koja je već definisana kao komanda, varijablu nije potrebno definisati. U
drugom primjeru cilj je dobiti ispis deset brojeva, od kojih je prvi 2, a svaki
sledeći je za 3 veći, što se postiže dodjeljujući varijabli inicijalnu vrijednost
2 i dodavajući joj priraštaj 3.
Kod
\multido{}{7}{\TeX\ }
TEX TEX TEX TEX TEX TEX TEX
Kod
\multido{\n=2+3}{10}{\n, }
2, 5, 8, 11, 14, 17, 20, 23, 26, 29,
Kod
\multido{\i=2+-3}{9}{\i, }
2, -1, -4, -7, -10, -13, -16, -19, -22,
Kod
\multido{\r=2+3.05}{5}{\r, }
2.0, 5.05, 8.1, 11.15001, 14.20001,
Kod
\multido{\n=2.00+-3.05}{5}{\n, }
2.00, -1.05, -4.10, -7.15, -10.20,
U svim primjenama komande \multido bitno je voditi računa o pravilnoj
deklaraciji varijable jer je to najčešće uzrok neželjenih rezlutata. Značaj komande \multido je veći u geometriji, što će se vidjeti iz narednih primjera.
Grafik funkcije zadane jednačinom y = −5x, kao i funkcija čija se vrijednost
koeficijenta pravca povećava za 0.5, dat je narednim kodom. Broj ponavljanja je 21. Varijabla je deklarisana sa r i predstavlja koeficijent pravca.
87
4.8. Komanda - \multido
Kod
\psaxes{->}(0,0)(-1.5,-2.5)(1.5,2.5)
\psplot[algebraic,plotstyle=line]
{-0.5}{0.5}{x*(-5}
\multido{\r=-5+0.5}{21}{
\psplot[algebraic,plotstyle=line,
linecolor=lightgray]
{-0.5}{0.5}{x*(\r)}}
2
1
-1
1
-1
-2
Sljedeći primjer predstavlja funkciju zadatu jednačinom y = x + 1, kao i
funkcije čiji se koeficijent pravca povećava za 0.3, do vrijednosti 3.7. Ovdje
je definisana i boja mygray, koja nije jednoznačno odredjena, jer je njen
intenzitet zadat varijablom \n.
Kod
\definecolor{mygray}{gray}{0}
\psaxes{->}(0,0)(-3,-3)(5,5)
\multido{\r=1+0.3,\n=0.0+0.1}{11}{
\definecolor{myblue}{gray}{\n}
\psset{linecolor=myblue}
\rput{\n}{\psplot[algebraic,
plotstyle=line]
{-1}{1}{x*(\r)+1}}}
2
1
-1
-1
U narednom primjeru, data je linija dužine 5 cm. Cilj je dobiti podione tačke,
ali ne korištenjem komande \psaxes, već upravo komandom \multido.
Razmak izmedju podionih tačaka je 1 cm, a vrijednosti kreću od 0, što
se definiše kao varijabla \i=0+1. Broj ponavljanja je pet. Objekat koji je
potreban je vertikalna linija, koja bi bila oznaka podioka. Ona se pozicionira
komandom \put, gdje se za prvu koordinatu uzima upravo definisana varijabla ("brojač") i.
Kod
\psline{->}(0,0)(5,0)
\multido{\i=0+1}{5}{
\put(\i,-0.1){\line(0,1){0.2}}}
88
4.8. Komanda - \multido
Kod
\definecolor{myblue}{gray}{0}
\psset{fillstyle=solid,fillcolor=myblue}
\SpecialCoor
0.4
\degrees[1.1]
\multido{\n=0.0+0.1}{11}{
0.5
\definecolor{myblue}{gray}{\n}
\psset{fillcolor=myblue}
\rput{\n}{\pswedge{3}{-0.05}{0.05}}
0.6
\uput{3.2}[\n](0,0){\small\n}}
0.3
0.2
0.1
0.0
1.0
0.7
0.8
0.9
2
Kod
\psaxes{->}(0,0)(-2.5,-2.5)(2.5,2.5)
\psset{linecolor=CornflowerBlue}
\multido{\R=0.5+0.5,\r=-0.5+-0.5}{4}{
\pspolygon(\R,0)(0,\R)(\r,0)(0,\r)(\R,0)}
1
-2
-1
1
-1
-2
Kod
\psaxes{->}(0,0)(-2,-2)(2,2)
\psset{linecolor=magenta}
\multido{\n=0.2+0.2}{8}{
\pscircle(0,0){\n}}
1
-2
-1
1
-1
-2
Kružnica se može dobiti i korištenjem parametra polarplot, kao i kružni
lukovi dati u narednom primjeru.
89
2
4.8. Komanda - \multido
Kod
\psaxes{->}(0,0)(-1.5,-1.5)(1.5,1.5)
\psset{linecolor=CadetBlue}
\multido{\r=0.25+0.25}{5}{
\psplot[polarplot,
plotstyle=curve]
{0}{90}{\r}}
1
-1
1
-1
Kod
\def\Func{cos(x)+cos(2*x)+cos(3*x)}
\psaxes{->}(0,0)(-7.5,-2)(7.25,3.5)
\psplot[linewidth=2pt,algebraic,plotstyle=curve,
plotpoints=500,linecolor=yellow]
{7.5}{-7.5}{\Func}
\multido{\n=-7+1}{15}{
\psplotTangent[algebraic,linecolor=blue]{\n}{1}{\Func}}
3
2
1
-7
-6
-5
-4
-3
-2
-1
1
-1
-2
90
2
3
4
5
6
7
Poglavlje 5
Pst-node
U toku crtanja odredejnih objekata često se ukaže potreba za njihovim
povezivanjim s različitim oznakama, ali i samim objektima. Taj problem
je riješen uvodjenem paketa pst-node1 , jer je sada moguće povezati objekte
i postaviti oznake bez poznavanja tačne pozicije objekata koji se spajaju ili
tačke gdje bi se "poveznice" trebale spojiti sa objektom. Ovo je korisno za
grafikone i "drveća", matematičke dijagrame, lingvističke dijagrame, tačnije
za povezivanje proizvoljnih pojmova. Postoje tri komponente u samom postupku formiranja nodova (egl. node - čvor, član).
Definicija noda - kojom se odredjuje njegovo ime i oblik.
Povezanost nodova - kojom se spajaju dva noda, identifikovana na osnovu
svojih imena.
Oznaka noda - kojom se odredjuje gdje će se "poveznice" spojiti.
Komande predvidjene ovim paketom mogu se koristiti u okruženju pspicture i tada se pozicioniranju komandom \rput, ali najčešće je to odredjeno
zahtjevima koje je potrebno ostvariti. Za matematičke dijagrame, gridove i
neke grafike uvodi se novo okruženje:
\begin{psmatrix}
objekat
\end{psmatrix}
5.1
Definicija noda
Tri bitne karakteristike noda su: ime, granica i centar. Centar noda je tačka
spajanja, odnosno tačka odakle polazi "poveznica". Razlika u nodovima je
1
Više o mogućnostima koje pruža ovaj paket može se naći u djelima: PSTricks PostScript macros for Generic TEX, Timothy Van Zandt, July 2003 i pstricks-add - additionals Macros for pstricks, Dominique Rodriguez and Herbert Voß, September 2007.
91
5.1. Definicija noda
upravo u odredjenosti njihovog centra i granice. Takodjer se oni razlikuju i
po vidljivom objektu koji kreiraju. Prve od komandi koje ćemo navesti su:
\rnode[p-tačka]{ime}{objekat}
\Rnode[par]{ime}{objekat}
Prva komanda \rnode postavlja objekat u "kutiju", čije granice nisu vidljive.
Centar noda je p-tačka, koja ima istu funkciju kao i kod komande \rput.
Komanda \Rnode takodjer pravi "nevidljivu kutiju" oko objekta, ali je njen
centar drugačije odredjen. Na primjer, ukoliko se kod komande \rnode
postavi da je p-tačka osnovna linija, koja je različita za objekte koji imaju
raličite visine, tada se dobija linija koja nije paralelna u odnosu na objekte.
Kod
\rnode{A}{sp}
\hskip 2cm
\rnode{B}{Bit}
\ncline{A}{B}
sp
Bit
Upravo korištenjem komande \Rnode to se izbjegava.
Kod
\Rnode{A}{sp}
\hskip 2cm
\Rnode{B}{Bit}
\ncline{A}{B}
sp
Bit
rput
U prethodnom primjeru nod je definisan komandom \Rnode. Time je
zadano ime noda {A} i njegov sadržaj {sp}. Komanda \ncline odredjuje
način povezivanja nodova, čija je imena potrebno navesti ({A} i {B}), a o
tim varijacijama biće riječ u daljem tekstu. Ukoliko se u prethodnoj slici
izostavi komanda \hskip rezultat je spajanje poveznicom \ncline, ali bez
datog rastojanja medju nodovima, kao na slici.
sp Bit
Budući da pozicija nodova nije zadata sistem će sam to učiniti. Korištenjem
komande \rput odredjuje se položaj noda, a samim tim i način njihovog
spajanja. Time se ujedno odredjuje i dužina poveznice, kao što se vidi iz
datog primjera.
P
92
5.1. Definicija noda
Kod
\rput(1.5,-0.5){\Rnode{A}{P}}
\rput(10.5,7){\Rnode{B}{rput}}
\ncline[linecolor=CadetBlue]{A}{B}
Komanda definisana sa:
\pnode(x,y){ime}
crta nod u tački (x,y) čija je dimenzija nula, dok komanda:
\cnode[par](x,y){radijus}{ime}
crta nod čije granice predsatvljaju kružnicu.
Kod
\cnode(0,1){0.25}{A}
\pnode(3,0){B}
\ncline{<-}{A}{B}
Naredne komande odredjuju oblik noda.
\circlenode[par]{ime}{objekat}
\ovalnode[par]{ime}{objekat}
\dianode[par]{ime}{objekat}
\trinode[par]{ime}{objekat}
Kod
\circlenode{A}{Kru\v znica} i
\ovalnode{B}{Elipsa}
\ncbar[angle=90]{A}{B}
Kružnica i
Elipsa
Osim ovih oblika nodovi mogu imati oblik tačke ili kutije, što omogućavaju
komande:
\dotnode[par](x,y){ime}
\fnode[par](x,y){ime}
Ovdje se mogu raditi razne kombinacije koje su već ilustrovane za date
objekte. Na primjer:
93
5.2. Veza izmedju nodova
Kod
\dotnode[dotstyle=triangle,
linecolor=red,
dotscale= 2 1 ]
(0,0){A}
\dotnode[dotstyle=pentagon*,
linecolor=blue]
(3,2){B}
\ncline[nodesep=3pt]{A}{B}
q
ut
Kod
\fnode[linecolor=red]{A}
\fnode*[framesize=1 5pt,%
linecolor=blue]
(2,2){B}
\ncline[nodesep=3pt]{A}{B}
Kao što se vidi iz zadnjeg primjera koordinate (x,y) moguće je izostaviti,
pri čemu se podrazumjeva da je to tačka (0,0), odnosno početak referentnog
sistema.
5.2
Veza izmedju nodova
Sve komande kojima se odredjuje način povezivanja nodova počinju sa nc i
imaju istu sintaksu datu sa:
\nc-veza[par]{arrows}{nod A}{nod B}
"Poveznice" idu od prvog noda nazvanog sa nod A, do drugog noda nod
B. Neke od komadni povezivanja nodova mogu da djeluju zbunjujuće, ali
kroz par eksperimenata s njima, shvati se njihov način funkcionisanja i iznenadjujuće mogućnosti koje pružaju. U ovom dijelu komande se neće toliko
detaljano obraditi, a primjeri su jednostavniji. Komande koje se ovdje koriste podržavaju uobičajene parametre koji su se koristili pri crtanju grafičkih
objekata, ali i specijane parametre namijenjene samo za nodove, od koji su
neki navedeni u tabeli.
94
5.2. Veza izmedju nodova
Parametar
Moguće vrijednosti
Standardna vrijednost
nodesep
arcangle
angle
angleA
angleB
arm
armA
armB
loopsize
boxsize
broj
broj
broj
broj
broj
broj
broj
broj
broj
broj
0pt
8
0
0
0
10pt
10pt
10pt
1cm
0.4cm
parametar
Postoje različiti oblici "poveznica", na primjer, prava ili izlomljena linija,
kriva, pa i povezivanje nodovu unutar odredjenog objekta. Prva komanda
koja povezuje dva noda pravom linijom, a koja je već korištena u prethodnim
primjerima je definisana sa:
\ncline[par]{arrows}{nod A}{nod B}
U narednom primjeru je dat prikaz korištenja komande \ncline i parametra nodesep čija je funkcija odredjivanja razmaka izmedju "poveznica" i
graničnog dijela noda.
Kod
\pnode(0,0){A}
\hskip 3cm
\rput(3,2){\rnode{B}{Tjeme}}
\ncline[nodesep=3pt]{->}{A}{B}
3
Tjeme
2
1
-2
-1
Poveznice u obliku luka rezultat su komande:
\ncarc[par]{arrows}{nod A}{nod B}
95
1
2
5.2. Veza izmedju nodova
Kod
\psplot[linecolor=red,
algebraic]
{-0.5}{3.1}{x^2*(3-x)}
\rput(4.5,1){\ovalnode
[linecolor=yellow]
{B}{min i max}}
\pnode(2,4){A}
\ncarc{->}{A}{B}
\pnode(0,0){C}
\ncarc{->}{C}{B}
3
2
1
min i max
0
0
1
2
3
Osim prave linije i luka, postoji mogućnost spajanja noda sa izlomljenom
linijom, koja se sastoji od tri dijela, a što obezbjedjuje komanda:
\ncdiag[par]{arrows}{nod A}{nod B}
Sada je moguće koristiti parametre iz navedene tabele kojima se utiče na
izgled takve "poveznice". Parametri angleA i angleB odredjuju uglove
koje zaklapa poveznica sa zadatim oblikom noda, a kao što je već poznato,
parametar linearc, odredjuje zaobljenost uglova preloma poveznice. Paramtar arm odredjuje dužina od noda do prve tačke preloma poveznice.
Kod
\psplot[linecolor=magenta,
algebraic]
{-1.8}{1.8}{x^3-3*x}
\rput(1,1){\ovalnode
[linecolor=cyan]
{B}{max}}
\pnode(-1,2){A}
\ncdiag[angleA=-90,angleB=90,
linearc=0.2,arm=0.5]
{A}{B}
2
1
-2
-1
1
-1
-2
Komanda
\ncdiagg[par]{arrows}{nod A}{nod B}
96
max
2
5.2. Veza izmedju nodova
je slična komandi \ncdiag, s tim da sada poveznica ima samo dva preloma
i to kod dijela koji ide od noda A, a drugi dio poveznice direktno se veže za
nod B. Uporedimo obje komande u narednom primjeru, s tim da se komandi
\ncdiag dodijeli parametar armB=0.
Kod
\cnode(0,0){12pt}{a}
\rput[l](3,1){\rnode{b}{A}}
\rput[l](3,-1){\rnode{c}{B}}
\ncdiagg[angleA=180,armA=1.5,
nodesepA=3pt]{b}{a}
\ncdiag[angleA=180,angleB=0,
armA=1.5,nodesepA=3pt]{c}{a}
A
B
Komanda
\ncangle[par]{arrows}{nod A}{nod B}
kao i prethodna daje za rezultat izlomljenu liniju iz tri dijela, s tim da je
ovdje ugao preloma poveznice 900 .
Kod
\rput[tl](0,3){\rnode{A}
{\psframebox{y=3x-5}}}
\rput[br](4,0){\ovalnode{B}{k=3}}
\ncangle[angleA=-90,armB=1cm,
angleB=90,nodesepA=3pt]{A}{B}
y=3x-5
k=3
Ukoliko se promijeni vrijednost ugla, na primjer kod noda A, ugao preloma
poveznice ostaje 900 , a rezultat :
97
y=3x-5
angleA
armB
Kod
\psset{linecolor=magenta}
\rput[tl](0,3){\rnode{A}
{\psframebox{y=3x-5}}}
\rput[br](4,0){\ovalnode{B}{k=3}}
\ncangle[angleA=-70,armB=1cm,
angleB=90]{A}{B}
k=3
5.2. Veza izmedju nodova
Prethodna komanda povezuje nodove linijom koja se prelama pod uglom od
900 i sastoji se iz dva dijela, ukoliko se parametru armB dodijeli vrijednost
0. Komanda
\ncangles[par]{arrows}{nod A}{nod B}
rezultira poveznicom koja se sastoji iz četiri dijela, dok je komanda
\ncloop[par]{arrows}{nod A}{nod B}
Kod
\rnode{A}{\psframebox{\large\textbf{Pocetak}}}
\vspace{1cm}\hspace*{\fill}
\rnode{B}{\psframebox{\large\textbf{Kraj}}}
\ncloop[angleA=180,arm=0.5cm,
linearc=0.2,loopsize=0.9]
{->}{A}{B}
Pocetak
Kraj
Naredne tri komande su različite od do sada navedenih. Komanda
\nccurve[par]{arrows}{nod A}{nod B}
crta bezier krivu kojom povezuje nodove, dok komanda
\nccircle[par]{arrows}{nod}{radijus}
crta kružnicu. Ova komanda je osobena i po tome što jedina povezuje nod
sa samim sobom i ima mogućnost kao što se vidi iz njene definicije, da
odredjuje vrijednost radijusa.
98
loopsize
sa sličnim osobinama kao i prethodne dvije, s tim da ona crta, generalno,
izlomljenu liniju iz pet dijelova.
5.2. Veza izmedju nodova
Za razliku od svih prethodnih komandi kojima se odredjuje način povezivanja nodova, komanda
\ncbox[par]{nod A}{nod B}
smiješta nodove unutar kutije.
Kod
\rput[bl](0.5,0){\rnode{A}{y}}
\rput[tr](3.5,2){\node{B}{k}}
\ncbox[nodesep=0.5cm,boxsize=0.6,
linearc=0.2,linestyle=dashed]{A}{B}
k
y
Komanda slična prethodnoj je:
\ncarcbox[par]{nod A}{nod B}
gdje su nodovi smješteni unutar "zakrivljene kutije".
Kod
\rput[bl](0.5,0){\rnode{A}{1}}
\rput[tr](3.5,2){\rnode{B}{2}}
\ncarcbox[nodesep=0.2cm,boxsize=0.4,
linearc=0.4,arcangle=50]{A}{B}
2
1
U toku rada s nodovima, naročito kada je potrebno formirati "drvo", javlja
se potreba za formiranjem grana istih dužina. Ovo se neće desiti samo po
sebi, ukoliko su nodovi različitih veličina, kao u primjeru:
Kod
\Huge
\cnode(1,3){4pt}{a}
\rput[B](0,0){\Rnode{b}{H}}
\rput[B](2,0){\Rnode{c}{a}}
\psset{nodesepA=3pt,angleA=90,armA=1}
\ncdiagg{b}{a}
\ncdiagg{c}{a}
99
H
a
5.2. Veza izmedju nodova
Način da se izbjegne različita dužina je da se poveća distanca izmedju granice
noda i manjeg objekta, čime se vizuelno postiže ista dužina grana koje idu
od nodova do "korijena", kao u narednom primjeru:
Kod
\Huge
\cnode(1,3){4pt}{a}
\rput[B](0,0){\Rnode{b}{H}}
\rput[B](2,0){\Rnode{c}{a}}
\psset{YnodesepA=12pt,angleA=90,armA=1}
\ncdiagg{b}{a}
\ncdiagg{c}{a}
H
a
Postupak s poveznicama učinit će lakšim varijante komandi koje počinju sa
pc umjesto prethodnih nc. Jedino komanda \nccircle nema pc varijantu.
Na primjer, komanda data kodom
Kod
\pcarc{<->}(3,4)(6,9)
daje isti rezultat kao i kod:
Kod
\pnode(3,4){A}
\pnode(6,9){B}
\ncarc{<->}{A}{B}
Komanda
Odgovarajuća komanda
\ncline
\nccurve
\ncarc
\ncbar
\ncdiag
\ncdiagg
\ncangle
\ncangles
\ncloop
\ncbox
\ncarcbox
\pcline{arrows}(x1 , y1 )(x2 , y2 )
\pccurve{arrows}(x1 , y1 )(x2 , y2 )
\pcarc{arrows}(x1 , y1 )(x2 , y2 )
\pcbar{arrows}(x1 , y1 )(x2 , y2 )
\pcdiag{arrows}(x1 , y1 )(x2 , y2 )
\pcdiagg{arrows}(x1 , y1 )(x2 , y2 )
\pcangle{arrows}(x1 , y1 )(x2 , y2 )
\pcangles{arrows}(x1 , y1 )(x2 , y2 )
\pcloop{arrows}(x1 , y1 )(x2 , y2 )
\pcbox(x1 , y1 )(x2 , y2 )
\pcarcbox(x1 , y1 )(x2 , y2 )
100
5.3. Oznaka noda
5.3
Oznaka noda
Sada konačno treba odrediti kako pozicionirati poveznice u odnosu na nod.
U tu svrhu imamo dvije vrste komandi. Prvu grupu čine komande:
\ncput[par]{objekat}
\naput[par]{objekat}
\nbput[par]{objekat}
One se razlikuju u načinu postavljanja poveznice u odnosu na liniju koja se
uzima od centra noda:
\ncput - postavlja poveznicu na liniju
\naput - postavlja poveznicu iznad linije
\nbput - postavlja poveznicu ispod linije
Na primjer:
Kod
\cnode(0,0){0.5cm}{root}
\cnode*(3,1.5){4pt}{a}
\cnode*(3,0){4pt}{b}
\cnode*(3,-1.5){4pt}{c}
\psset{nodesep=3pt}
\ncline{root}{a}
\naput{iznad}
\ncline{root}{b}
\ncput*{na}
\ncline{root}{c}
\naput{ispod}
iznad
na
ispod
Drugu grupu čine komande:
\tvput[par]{objekat}
\tlput[par]{objekat}
\trput[par]{objekat}
\thput[par]{objekat}
\taput[par]{objekat}
\tbput[par]{objekat}
Razlika izmedju komandi \n*put i \t*put je u tome što komande \t*put
pronalaze srednju tačku izmedju centara nodova koji se povezuju, u horizontalnom ili vertikalnom smjeru. Ove komande su pogodne kada se formira
101
5.3. Oznaka noda
drvo, matematički dijagram, odnosno kada je potrebno vršiti označavanje sa
horizontalnom i vertikalnom pozicioniranjem. Način pozicioniranja je dat
tabelom:
Komanda
Smjer
Pozicioniranje
\tvput
\tlput
\trput
\thput
\taput
\tbput
vertikalno
vertikalno
vertikalno
horizontalno
horizontalno
horizontalno
sredina
lijevo
desno
sredina
lijevo
desno
Naredni primjer ilustruje neke od prethodnih komandi, kao i okruženje psmatrix.
Kod
$\begin{psmatrix}[colsep=1cm]
& X \\
Y & Z
\end{psmatrix}
\everypsbox{\scriptstyle}%
\psset{nodesep=3pt,arrows=->}
\ncline{1,2}{2,1}
\tlput{f}
\ncline{1,2}{2,2}
\trput{g}
\ncline[linestyle=dotted]{2,1}{2,2}
\tbput{h}$
102
X
f
Y
g
h
Z
Bibliografija
[1] Timothy Van Zandt. PSTricks - PostScript macros for Generic TEX,
July 2003.
[2] Dominique Rodriguez and Herbert Voß. pstricks - add - additionals
Macros for pstricks, September 2007.
www.ctan.org/tex-archive/graphics/pstricks/contrib/pstricks-add
[3] Timothy Van Zandt. multido.tex - A loop macros for Generic TEX,
May 2004.
www.ctan.org/tex-archive/macros/generic/multido
[4] Timothy Van Zandt. Fancy Verbatims in LATEX, February 2008.
[5] Zhuhan Jiang. arrayjob - Management for arrays in LATEX, May 2000.
www.ctan.org/tex-archive/macros/generic/arrayjob
[6] Dominique Rodriguez. The pst-euclide Package, March 2005.
http : //f tp.univie.ac.at/packages/tex/graphics/pstricks/contrib/pst−
eucl/euclide − english.pdf
[7] David Carlisle. The tabularx Package, 1999.
[8] David Carlisle. The tabulary Package, 2003.
http : //tug.ctan.org/tex−archive/macros/latex/contrib/tabulary/tabulary.pdf
[9] Frank Mittelbach David Carlisle. A new implementation of LATEXs
tabular and array environment, May 2006
http : //tug.ctan.org/tex−archive/macros/latex/required/tools/array.pdf
[10] Online LATEX Tutorial Part II - Graphics
http : //www.tug.org.in/tutorials.html
103
Index
\pcarc, 100
\pcbar, 100
\pcbox, 100
\pccurve, 100
\pcdiagg, 100
\pcdiag, 100
\pcline, 100
\pcloop, 100
\pnode, 93
\psStep, 79
\psarcn, 30
\psarc, 29
\psaxes, 36, 38, 88
\psbezier, 26
\psccurve, 20, 22
\pscircle*, 28
\pscircle, 28
\pscurve, 20, 24
\pscustom, 76
\psdiamond, 16, 17
\psdots, 10
\psdot, 10
\psecurve, 20–22
\psellipse, 28
\psellipticarc, 31
\psframe, 16
\psgrid, 2, 36
\pshlabel, 55, 57
\psline, 12, 15, 62
\psplotTangent, 79
\psplot, 62, 65, 66, 75
\pspolygon, 15
\psset, 6, 7, 12, 28
\pstCircleABC, 84
\pstInterLL, 86
\Huge, 41
\Rnode, 92
\SpecialCoor, 33
\cnode, 93
\dataplot, 61
\dianode, 93
\dotnode, 93
\fileplot, 60
\fnode, 93
\footnotesize, 41
\hskip, 92
\listplot, 60
\makeatletter, 57
\makeatother, 57
\naput, 101
\nbput, 101
\ncangles, 98
\ncangle, 97
\ncarcbox, 99
\ncarc, 95
\ncbox, 99
\nccircle, 98
\nccurve, 98
\ncdiagg, 96
\ncdiag, 96
\ncline, 92, 95
\ncline , 95
\ncloop, 98
\ncput, 101
\newarray, 57
\ovalnode, 93
\parametricplot, 65, 73
\pcangles, 100
\pcangle, 100
\pcarcbox, 100
104
Index
arrowinset, 15
arrowlenght, 15
arrows, 13, 14, 60, 65
stil, 15
arrowscale, 15
axes, 55
axesstyle, 55
\pstMarkAngle, 84
\pstMediatorAB, 85
\pstMiddleAB, 84
\pstProjection, 86
\pstRightAngle, 84
\pstTriangle, 84
\pstriangle, 18
\psvlabel, 55, 57
\pswedge, 29
\put, 88
\qdisk, 28
\qline, 12, 28
\readarray, 57
\readdata, 61
\rnode, 92
\rput, 32, 91
\savedata, 61
\small, 41
\taput, 101
\tbput, 101
\thput, 101
\tiny, 41
\tlput, 101
\trinode, 93
\trput, 101
\tvput, 101
\uput, 32, 33
*, 15
LATEX, 1, 2
border, 13, 14, 19
bordercolor, 13, 14, 19
boxfill, 19
boxsize, 95
bracketlength, 15
cmyk, 7
comma, 39, 42
cornersize, 16, 17
crosshatch, 19
crosshatch*, 19
curvature, 23
dash, 13, 65
dashed, 13
definecolor, 7
dimen, 19, 20
dotangle, 10
dotscale, 10
dotsep, 13
dotsize, 10, 65
dotstyle, 10, 11, 65
stil, 11
dotted, 13
doublecolor, 13
doubleline, 13
doublesep, 13
Dx, 42, 55
dx, 55
Dy, 42, 55
dy, 55
absolute, 16
algebraic, 65–67, 69, 75, 79
all, 40, 45
angle, 95
angleA, 95, 96
angleB, 95, 96
arcangle, 95
arcsep, 29
arcsepA, 29
arcsepB, 29
arm, 95, 96
armA, 95
armB, 95, 97
arrayjob, 1, 57
false, 40, 58
fillcolor, 10, 11, 19, 65
fillstyle, 19
frame, 55
framearc, 16
105
Index
polarplot, 65, 75, 89
psccurve, 60
pscurve, 60
psdots, 60
psecurve, 60
psgrid, 4
psline, 60
psmatrix, 91, 102
pspicture, 2, 6, 7, 32, 59, 67, 91
pspolygon, 60
pst-col, 1, 7
pst-eucl, 1, 83
pst-node, 1, 91
pst-plot, 1, 60
pst-tree, 1
PSTricks, 91
pstricks, 1
pstricks-add, 1, 54, 60, 79, 91
gangle, 17, 18
gridcolor, 4
griddots, 4
gridlabelcolor, 4
gridlabels, 4
gridwidth, 4
hatchangle, 19
hatchcolor, 19
hatchsep, 19
hatchwidth, 19
hlines, 19
hlines*, 19
IPN, 62, 63, 66, 73, 75, 79
labelFontSize, 41, 65
labels, 39, 40
labelsep, 40
labelsFontSize, 39
liftpen, 76
linearc, 13, 16, 60, 96
linecolor, 13, 65
linestyle, 13, 65
linewidth, 13, 65
logLines, 39, 49
loopsize, 95
lower, 79
rbracketlength, 15
relative, 16
rgb, 7
Riemann, 79
runit, 7
shadow, 13, 19, 65
shadowangle, 19
shadowcolor, 13, 19, 65
shadowsize, 19
showorigin, 58
showpoints, 20, 26, 29, 60, 65
solid, 13, 19
StepType, 79, 81
subgridcolor, 4
subgriddiv, 4
subgriddots, 4
subgridwidth, 4
subtickcolor, 39, 47
subticklinestyle, 39, 48
subticks, 39, 45, 49
subticksize, 39, 46
subtickwidth, 49
multido, 86
ncdiag, 97
nodesep, 95
none, 13, 19, 40, 45, 48, 55
okruženje, 2
psgraph, 67
psmatrix, 91
pspicture, 2
Ox, 55
Oy, 55
parametar, 1, 4, 6, 7, 10, 15, 29,
32, 33, 39, 55, 65, 75
plotpoints, 62, 65
plotstyle, 60, 65
tbarsize, 15
tickcolor, 39, 47
106
Index
ticklinestyle, 39, 48
ticks, 45
ticksize, 39, 44
tickwidth, 39, 49
trigLabelBase, 54
trigLabels, 39, 54
trigLabelsBase, 39
true, 54, 58, 79
unit, 7
upper, 79
vlines, 19
vlines*, 19
xAxis, 39, 40
xDecimals, 39, 43
xsubtickcolor, 39
xsubticklinestyle, 48
xsubticks, 39
xsubticksize, 46
xtickcolor, 39
xticklinestyle, 48
xticksize, 44
xunit, 7, 65
xyAxes, 39, 40
xyDecimals, 39, 43
xylogBase, 49, 65
yAxis, 39, 40
yDecimals, 39, 43
ylogBase, 49
ysubtickcolor, 39
ysubticklinestyle, 48
ysubticks, 39
ysubticksize, 46
ytickcolor, 39
yticklinestyle, 48
yticksize, 44
yunit, 7, 65
107
Download

Sadržaj - Početna