5 

po polsku







 





Poni¿ej zostan± omówione proste i bardziej
skomplikowane graficzne kszta³ty, które mo¿na
konstruowaæ w PostScripcie, a mianowicie ³uki i krzywe.



Operator arc jest jednym z najprostszych
operatorów PostScriptu, stosowanych do rysowania tych
kszta³tów graficznych.



Operator arc kre¶li w wybranym miejscu strony
³uki o zadanej d³ugo¶ci i promieniu. W po³±czeniu z
operatorem lineto mo¿na stosowaæ go do
rysowania wycinków kó³ o danym promieniu i w dowolnym
po³o¿eniu. Uzyskany kszta³t mo¿na zamalowaæ dowolnym
kolorem za pomoc± operatorów fill i stroke.
Ponadto ³±cz±c dzia³anie operatora arc z
dzia³aniem operatora scale, mo¿na rysowaæ
elipsy.






W porównaniu z kre¶leniem
prostok±tów w którym potrzeba a¿ piêciu operacji
PostScriptu, konstruowanie okrêgów jest banalnie proste.
Narysowanie okrêgu o dowolnym promieniu i w dowolnym po³o¿eniu
uzyskuje siê, wywo³uj±c operator arc z piêcioma
argumentami. Opisuj± one odpowiednia: wspó³rzêdne x i
y ¶rodka okrêgu, promieñ oraz k±ty pocz±tku i koñca
³uku. W przypadku okrêgów, k±ty pocz±tku i koñca s±
odpowiednio równe 0 i 360°.

Przedstawiony poni¿ej program kre¶li na ¶rodku strony
okr±g o promieniu trzech cali.







306 396 translate

0 0 216 0 360 arc

stroke

showpage




Poniewa¿ u¿yli¶my tu operatora translate
w celu przesuniêcia pocz±tku uk³adu wspó³rzêdnych
do punktu bêd±cego ¶rodkiem strony, zadane wspó³rzêdne
¶rodka okrêgu maj± warto¶æ 0,0.

Kre¶l±c krzyw± za pomoc± operatora arc od 0°
do 180° w kierunku przeciwnym do ruchu wskazówek zegara,
narysowane zostanie pó³kole.






306 396 translate

/Helvetica-Bold findfont 72 scalefont setfont

newpath

0 0 216 0 180 arc

stroke

220 0 moveto

(0\312) show

-220 0 moveto

(180\312) show

showpage




Zmieniaj±c odpowiednio k±t pocz±tkowy i koñcowy
kre¶lonej krzywej uzyskaæ mo¿na dowolny wycinek ko³a.

Ko³a
mo¿na ³atwo przekszta³ciæ w elipsy, skaluj±c je nierównomiernie,
operatorem scale i ka¿demu ko³u nadamy kszta³t
eliptyczny







306 396 translate

0 252 translate

gsave

.5 1 scale

0 0 72 0 360 arc fill

grestore

0 -180 translate

gsave

2 1 scale

0 0 72 0 360 arc fill

grestore

0 -180 translate

gsave

.25 .50 scale

0 0 72 0 360 arc fill

grestore

0 -180 translate

gsave

4 1 scale

0 0 72 0 180 arc

closepath fill

grestore

showpage




Zmianê orientacji ka¿dej rysowanej elipsy mo¿na uzyskaæ,
stosuj±c instrukcjê arc.












Szczególn± odmian± operatora arc jest arcto,
który s³u¿y do ³±czenia linii fragmentami ³uków.
Mimo ¿e trudniejszy w u¿yciu, jest bardzo przydatny do
rysowania na przyk³ad prostok±tów z zaokr±glonymi
rogami lub do kre¶lenia dwóch równoleg³ych odcinków
po³±czonych ³ukami. Operator arcto ³±czy
odcinek z ³ukiem o dowolnym promieniu i k±cie.

Operator arcto wymaga piêciu argumentów.
Cztery pierwsze argumenty s± wspó³rzêdnymi x, y dwóch
punktów. Razem z punktem bie¿±cym wyznaczaj± dwie
linie proste, do których bêdzie styczny ³uk. Pi±ty
argument okre¶la promieñ tego ³uku. Operator clear
jest stosowany w celu odrzucenia niektórych zbêdnych
informacji generowanych przez interpretator PostScriptu
po wykonaniu arcto.

To, czy kre¶lony przez arcto ³uk bêdzie
poprzedzony odcinkiem, czy nie, zale¿y od odleg³o¶ci
miêdzy punktami i od promienia ³uku. W przedstawionym
przyk³adzie u¿ywamy ³uków zarówno z odcinkami
prostych, jak i bez. W wyniku uzyskujemy dwa równoleg³e
odcinki po³±czone pó³okrêgami.




108 108 translate



0 576 translate

0 36 moveto

0 72 216 72 36 arcto clear

stroke



0 -144 translate

36 72 moveto

216 72 216 0 36 arcto clear

stroke



0 -144 translate

216 36 moveto

216 0 0 0 36 arcto clear

stroke



0 -144 translate

180 0 moveto

0 0 0 72 36 arcto clear

stroke



0 -144 translate

newpath

0 36 moveto

0 72 216 72 36 arcto clear

216 72 216 0 36 arcto clear

216 0 0 0 36 arcto clear

0 0 0 72 36 arcto clear

stroke

showpage











Operator curveto jest bardzo elastycznym a
zarazem jednym z trudniejszych w u¿yciu operatorów
PostScriptu.

Na rysunku poni¿ej widaæ dwie krzywe, uzyskane za pomoc±
operatora curveto

Operator curveto wymaga sze¶ciu argumentów.
Wykonanie instrukcji moveto ustala punkt pocz±tkowy
krzywej, a ostatnia para argumentów okre¶la punkt koñcowy.
Pozosta³e dwie pary liczb, bêd±ce wspó³rzêdnymi x,
y, opisuj± po³o¿enie punktów kontrolnych.




306 396 translate

gsave

-200 0 moveto

100 150 150 -150 200 0 curveto

stroke

grestore

showpage








 
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • pajaa1981.pev.pl