Giriþ
Bu makale PostScript için hazýrladýðýmýz
makaleler serisinin ilk kýsmýdýr.Buradaki tem el amaç
bu yazýlým hakkýndaki her ayrýntýyý
öðretmek deðil ,PostScript proðramlama dilini ilginç
ve eðlenceli bulan kimselere gerekli bilgileri içren döküman
hazýrlamaktýr.Her nekadar bu konu üzerinde teknik bilgiler
hazýrlamaskta konu ile ilgili gerekli ve önemli bilgileri sunmaya
çalýþacaðýzç
PostScript'in ardýndaki temel düþünce 20 yýl
önce John Gaffney tarafýndan Evans & Sutherland Computer
Corporation' da atýlmýþtýr.Baþlangýçta
quotDesign System" olarak biliniyordu ama daha sonra Adobe Systems
Incorporated tarafýndan PostScript adý altýnda sayfa
düzenlenmesi için bir platform ve bagýmsýz bir
araç olarak geliþtirildi. Adobe Systems Incorporated
Chuck Geschke ve John Warnock tarafýndan 1982' de biçimlendirildi..
C. Geschke ve J. Warnock , Doug Brotz, Billi Paxton, ve Ed Taft 'ýn
önemli katkýlarda bulundugu bu dile yeni ve tamamlayýcý
bir model getirme yükümlülüðünü üstlenmiþlerdir.Her
nekadar günümüzde birçok kullanýcý
tarafýndan kullanýlmasada önemli hazýrlýk
araçlarý dökümanlarýndandýr.Yetenekleri
yüksek düzeyede olmasýna ragmen bu dil, iþin ayrýntýlarýna
girmek istemeyen birçok kullanýcý tarafýndan
tercih edilmemekle beraber bu kullanýcýlar "Ne görürsen
onu yap" felsefesiyle hareket edip son kullanýcý yönelimini
araçlarýný tercih etmektedirler.Gerceði söylemek
gerekirse bir cok WYSIWYG araçlarý ,belgeleme ürünlerini
sürdürmek yada yazdýrmak için PostScript dosya
formatýný kullanmaktadýrlar.Bu anlamda Postscript
dili bize renklendirme , imaj oluþumu ,renk ayrýmý
,animasyon gibi bilgisayarla ilgili birçok meslekte bize eski bir
arkadaþ ve güçlü bir asistan olarak yardým
etmektedir.Diðer yandan , eðer gerçekten bu dili programlama
için ögrenmek istiyorsanýz baþladýðýnýzda
onu çok zor bulacaksýnýz
PostScript'in komutlarý gerçek tercümalar aracýlýðýyla
uygulanmaktadýr.Bunlarýn arasýnda en çok bilinen
yazýlým bedava olarak internette dagýtýlmaktadýr.Bunun
ismi Alaaddin Enterprise'dan esinlenerek "ghostscript" olarak adlandýrýlmýþtýr.Yine
ayný organisazyon tarafýndan oluþturulan "ghostview"
adlý arayüz de mevcuttur.Ayný zamnda GNU projesi
ghostscript için kendi versiyonlarýna sahiptir.Bütün
bunlat Linux oratmýnda mevcuttur ve ana Linux daðýtýcýlarýnda
kurulu olarakbulunmaktadýr.Burda hernekadar örnek programlar
diger tercümanlar aracýlýgýyla gercekleþtirilmiþ
olsalarda , biz ghostscript ve onun temel parçalarý
ve özellikleriyle ilgilenmekteyiz.Farz edelimki X Window
ortamýnda bir xterm penceresi açalým.Eðer
ghostscript' i kullanmak istiyorsak her komutu yada komut grubunu ; komut
yazdýktan sonra komut satýrýnda (at the command prompt)
Initializing... done. Ghostscript 2.6.2 (4/19/95) Copyright (C)
1990-1995 Aladdin Enterprises, Menlo Park, CA. All rights reserved. Ghostscript
comes with NO WARRANTY: see the file COPYING for details.
GS>
Bu hazýr komut görünürken ayný zamnada
özel bir boþ pencere açýlacaktýr.Eðer
ghostscript ortamýnýn gitmesine izin vermek istersen yapmamýz
gereken GS> komutunu kullanmaktýr.Ayrýca
EOF (Ctrl-D)de ayný amaç için kullanýlabiþlir..
Ghostscript, komutlarý dosyalardan alarakta uygulayabilir.Bu
durumda bir dosya açýp , isimlendiririz.Örengin sample.ps
.Ghoststscrýpt'te bulunan tum komutlarý bu dosya içinde
kullanabiliriz.Eðer aþagýdaki komutu Linux'un xterm penceresinde
yazarsak programýn tüm iceriði ve özel komutlarý
ardarda ghostscript tarafýndan uygulanmýþ olur
gs sample.ps
ve görüntü ghostscript penceresinde belirir.(Eger tabiki
program görüntü yaratmak amacýyla hazýrlnamýþ
ise.Cünki PostScript diðer matematiksel hesaplamalar ve diger
alanlarda da kullanýlabilir.)Bu serinin ilerki makalelerinde bunlardan
bahsedecegiz.Eðer program 1 sayfadan daha fazla sayfa üretiyorsa
, ghostscript penceresi ilk sayfaayý gösterir ve bir sonraki
sayfa için enter tuþuna basmak yeterli olur.
PostScript Reverse Polish Notation'ý kullanýr. (RPN
- HP cep hesap makinesi gibi ).Diðer bir deyiþle bir komut
için gerekli olan parametreler komuttan önce verilir.Komutlar
birbirinden boþluklarla ayrýlýr. Yýðma operasyonlarini
(stack operations)bilgi hazýrlamada ve komut uygulamalarýnda
kullanýr.PostScript kullanýmýnda mevcut dört
tane yýðýn (stack) vardýr : the operand (?), sözlük
, uygulama ve grafik . The operand stack (?) keyfi olarak PostScript
elemanlarýný tutar ve PostScript operatörlerinin uygulanmasýna
sebep olurlar.Aritmetik oparatörlerden birkaç örnek verebiliriz.
20 30 add 10 sub
sonuç 40 eder .20 ile 30 'u toplarsak 50 ve bunddanda 10 nu çýkarýrsak
sonuç 40 olur.Bölme ve çarpmada ayný þekilde
yapýlýr.'=' bu iþaret bir prosedürü
çaðrýþtýrmaktadýr.Bu prosedür
the operand stac'den (?) aniden gelen bir eleman ve bu elemanýn
standart dosyaya yazmýþ olduðu sonuç metnidir.Prosedür
yeni bir sýra tarafýndan takip edilir. ==
benzer bir göreve sahiptir ama bu ,standart dosyaya dizimsel bir þekilde
þunuþ metnini yazar.Bu serinin ilerki makalelerinde yýðýnlar
hakkýnda daha ayrýntýlý bilgi verecegiz.
Þekil
çizerken PostScript'i nasýl kullanýrýz
?
PostScript ile cizim yaparken ilk önce sayfanýn
geometrik yapýsýnýn nasýl dizayn edilmesi gerektigini
düþünmeliyiz .PostScript dilinde noktalarýn sayfa
üzerindeki yerleri bir inç'in 70 de biri olan birimlerle gösterilir.Dikdörtgen
sayfanýn solalt köþeþinde (0,0) noktalarýnýn
bulundugu kabul edilir.Sayfa 612 ve 792 uzunluklarýna göre
tanýmlanýr.Bu uzunluklar mektup tipi sayfalar içindir.Diðer
mümkün olan sayfa ölçüleri
not için 540 and 720
yasal (legal) olarak 612 and 1008
a4 için 595 and 842 .
Bunlar düzenli gs komutlarýdýr.'a4' komutu çizim
kagýdýný tekrar düzenler ve uygun ölçüye
getirir.
Sayfa ölçütünün tanýmý adý
gs_statd.ps olan ilk baþtaki dosyadan bulunabilir.Slacware icin /usr/lib/ghostscript
içinde bulunabilir.Bu dosya üzerinde uygun eklemeler ve deðiþiklikler
yaparak standart olmayan sayfalar tanýmlýyabiliriz.Ýleriki
makale serisinde bundan bahsedeceðiz.Burdaki sunumda sayfayý
mektup (letter ?) tipi olarak ele alacaðýz.
Sayfayý istenen ölcülerde aldýktan sonra ikinci
adýmda imleç'i (cursor) çizimin en baþýna
yerleþtiririz.Bu
x y moveto
Komutuyla gerçekleþtirilir.Burada x ve y noktanýn
yatay ve düþek bileþenlerini gösterir. x ve y dogal
sayýlar olup pixel biçimindedirler.Görgünüz
gibi PostScript dilinin fonksiyonelC ,Fortran gibi
gibi programlama dillerinden biraz farklýdýr. moveto
komutu hareketi saðlar, baþka bir deyiþle imleç
(cursor)'ýn verilen x y noktalarýna taþýr.Parametreler
ardarda ilk yýgýna verildiðinden PostScript bir tane
yýgýn kullanýr.Sonra komut verilir.Yýðýna
girsdiði zaman önceki iki parcanýn parametresi olarak
onu kabul eder.Burda sözdizimi daha önce C ,Fortran gibi programlama
dillerini bilen kullanýcýlar tarafýndan farklý
bulunabilir.Bu nedenden dolayý gu konuyu burda vurguladýk.Sonuç
olarak þunu söyleyebiriz bazý parametrelere ihtiyacý
olan her komut kendi parametresinden sonra verilmelidir.
Þimdi þekli çizmeye hazýrýz.Basit bir
þekil olan düz çizgiyle baþlayalým .Bunu
çizebilmek için , yapmamýz gereken aþaðýdaki
komutu yazmaktýr.
xx yy lineto
Burada xx ve yy düzçizginin son noktalarýnýn
yerini götermektedir.Böylece , bu komutla x y 'den xx yy'ye bir
düz çizgi çizmiþ oldukBu aþagýda
verilen bilgi yardýmýlada yapýlabilirdi.Aþaðýdaki
program sample1.ps adlý dosya olarak kaydedilmiþtir.
newpath
100 100 moveto
300 100 lineto
300 250 lineto
100 250 lineto
100 100 lineto stroke
Hernekadar her komutu ayrý satýrlarda vermiþ olsakta
bu gerçekten gerekli birþey degildir.Daha öncede belirttiðimiz
gibi ayný satýr üzerinde aralarýnda boþluk
býrakarakda ardarda komutlar verebiliriz.
PostScript de diger proðramlama dilleri gibi çeþitli
kolaylýklar göstermektedir.Bütün materyal bir satýr
içeresinde bir yüzde iþaretini takip ediyorsa (
percentage sign ????) derleyici (interpreter) tarafýndan derlenir.
newpath
% Cursor initialization
100 100 moveto
% Drawing the rectangle
300 100 lineto
300 250 lineto
100 250 lineto
100 100 lineto stroke
Eðer þimdi gs sample1.ps komutu xterm penceresinde
yazýlýrsa herzamnaki ghostscript penceresinde
ðörmek istediðimiz diktörtgeni bulabiliriz.gs tercümanýna
( interpreter) görüntü sýrasýnda herzaman
ihtiyaç duymayacaðýz.Aslýnda (sample1.ps)
run komutu da GS> ile ayný þeyi yapabilir.
stroke komutu tercümana þekli çizmesini
söyler.Yukarýdaki program için ghostscript
penceresi yatayda ve düþeyde 200 ve 150 noktalarýna sahip
diktörgeni gösterir.
Düz çizgiler yatay ve düþey bileþenlere
ihtiyac duymazlar.Her doðrultuda oluþtulabilirler.
Ýlerde göreceðiz ki ghostscript vasýtasýyla
sonucu gösterdiðimizde bu program bir üçgen oluþturablir.moveto
ve lineto komutlarýyla bölünmüþ ve kesik çizgilerden
oluþan her türlü þekli çizebiliriz.
Yukarýdaki þkeilleri oluþturabilmek için iki
komut kullanýlmasý gerekmektedir.Bunlar rmoveto ve rlýneto
komutlarýdýr.iki parametreye ihtiyaç duyarlar ve aþaðýdaki
þekilde kullanýlýrlar
x y rmoveto
x y rlineto
Burda x ve y yatayda ve düþeyde baþlangýç
noktalarý arasýndaký uzaklýklarý gösterir.'r'
rmove ve rlineto komutlarýnda 'relative' anlamýnda
kullanýlmýþtýr.Diðer bir deyiþle ilk
komut imleçi ilk konumdan x birim yatada , y birim de düþeyde
hareket ettirir.Ýkinci komut benzer þekildedir ama çizgi
çizer ve sadece hareket eden imleçi deðil de hareket
etmeyenleride bitiþ noktasýna taþýr.Bunlar baþlangýç
noktalarýný referans noktalarý olarak aldýðýmýzda
kullanýlan komutlar ve paremetrelerdir.
yukarýdaki bütün örnekler için çizgi
geniþliði standart olarak 1 pixeldir.Bununla birlikte kullanýcý
çizimin herhangi bir yerinde çizgi geniþliðini
tanýmlayabilir.Bunu aþagýdaki komut yardýmýyla
saðlar.
x setlinewidth
Burada x pixel cinsinden çizgi geniþliðini göstermektedir.Bu
komutun etkisi program içinde bir sonraki çizgi geniþliði
tanýmlanana kadar devam eder.Çizgi geniþliðinin
tanýmýnda kullanýlan x degeri için bir kýsýtlama
söz konusu deðildir.
Tabiki PostScript dilinde çizim düz çizgilerle sýnýrlý
deðildir.Dairesel yaylar da çizilebilir.bunun için aþaðýdaki
komut kullanýlýr.
x y r a b arc
Burda x, y, r, a ve b sýrasýyla
daire yayýnýn merkezinin yatay ve düþey koordinatlarýný
,daire yayýnýn çapýný,yatya eksenle
pozitif yönede yapýlacak olan açýnýn baþlangýç
ve bitiþ degerlerini ifade etmektedir.Açýlas saat yönünün
ters yönünde ölcülür.Eðer yayýn baþlangýç
noktasý imlecin o anki noktasý deðilse , imlecin o anki
noktasý ile yayýn baþlangýç noktasý
arasýnda bir düz çizði eklenir.Bunu daha iyi anlayabilmek
için aþaðýda gösterilen PostScript programýna
bir bakmamýz gerekir.
3 setlinewidth
200 200 moveto
100 200 100 0 75 arc
stroke
300 300 moveto
400 500 200 20 50 arc
stroke
Bundan dolayý , eðer þeklimizde yukarýdaki gibi
fazladan bir çizgi istemiyorsak imleci(cursor) baþlangýç
noktasýna yerleþtirmede dikkatli olmalýyýz..Bununla
birlikte bu etkiden kurtulabilmenin baþka yoluda mevcuttur.Aslýnda
mevcut noktaya deðer vermeyebiliriz.Bir baþka deyiþle yolun
baþlangýcýnda hiç bir deðer yoktur.Ýmlecin
yeri için hiçbir ayrýn yoktur.Çizim yalnýz
birkez bitiþ noktasýndan baþlatýlýrsa
genel nokta halini alýr.Eðer newpath komutu kullanýlýrsa
PostScript imleç noktasý için olan ayrýmý
siler ve ve ona sanki çizim o uzaklýktan baþlýyacakmýþ
gibi davranýr.Bundan dolayý yukarýdaki program, beþinci
satýr yerine sadece newpath komutu içeren bir satýr
koyarak deðiþtirilirse oluþan ekstra çizgi dýþýnda
,yukarýdaki program elde edilir.
Bir yola newpath operatörü uygulanarak baþlanýr.Bu
þu anki yolun boþ olduðunu gösterir.Daha sonra bu
yol bazý komutlar uygulanmasýyla oluþturulur.Bu sayade
genel yola bölünmüþ parçalar eklenmiþ
olur.
arc komutu dolu bir daire içim kullanýlabilir.0
ve 360 dereceye göre baþlangýç ve bitiþ
acýlarý vermek önemlidir.Eðer bu yeni bir yol altýnda
yapýlýrsa bir çember elde edilir.arc komutu elips
oluþturmak içinde kullanýlýr.Bu PostScript'in
ölçülendirme özelliðini kullanarak elde edilir.Kullanýcý
aþaðýdaki komutu kullanarak yatay ve düþey
birimleri ayrý olarak ölcülendirebilir.
x y scale
Burda x ve y yatay ve düþeyde ölçü çarpanlarýdýr.Bunun
anlamý þudur ; eðer bu çþarpanlar 1'e eþitse
çizimde hiçbir etki göstermemektedirler.Bu ölcülendirmenin
etkisi bir sonraki kullanýlana kadar geçerlidir.Sonra kullanýlan
ölçülendirme komutu bir öncekinin etkisini kaldýrmaz
ama kendi etkilerini onun etkileriyle birleþtirir.Eðer bir önceki
ölçülendirme konut parametreleri x1, y1 ölçülendirme
çarpanlarýna sahip ve bir sonraki de x2, y2 ölçülendirme
çarpanlarýna sahip ise , bu komutlarýn birleþtirilimþ
etkileri x1*x2, y1*y2 ölçülendirme çarpanlarýna
sahip olur.Bu nokta istenmeyen sonuçlarýn görünmemesi
içöin gözden uzak tutulmalýdýr.Böylece
bazý yollar sayfa yüzeyinden kayabilir.Aþagýdaki
sample4.ps adýyla kaydedilmiþ PsotScript programý ,ölçülendirmeyi
açýklayan bir örnektir.
3 setlinewidth
200 200 100 0 360 arc
stroke
newpath
2 1 scale
200 300 50 0 360 arc
stroke
newpath
1 4 scale
100 150 40 0 360 arc
stroke
Dikkat edelicegi üzere ,ölçülendirme her boyutu
çizgi geniþliklerini içererk etkilemktedir.Bu sepepten
dolayý yukarýdaki programda oluþturulan elipslerin
ve ve çemberlerin çizgi geniþlikleri birbirinden farklýdýr.
Yay çizimi için PostScript'in iki komutu daha vardýr.Bunlarýn
biri arcn'dir.Aslýnda arcn ile arc aynýdýr.Tek farký
bunun yönünün saat yönünde olamsýdýr.üçünçü
yay çizme komutu ise bitiþ noktalarýnda iki çizgiyle
teðet olan dairesel yaylarý çizer.Komut aþaðýdaki
biçimde kullanýlýr.
x1 y1 x2 y2 r arcto xt1 yt1 xt2 yt2
Burda xt1, yt1, xt2, yt2 yayýn yatay ve düþey
koordinatlarýný
gösterir, teget doðrusunun bitiþ noktalarý
x0, y0, x1, y1 ve x1, y1, x2, y2 noktalarýný
alýrken vede r yayýn çapýnýn
uzunluðunu gösterir.Eðer yol yeni deðilse yada o anki
nokta yayýn baþlangýcý ile rastlaþmýyorsa
o anki noktayla birleþen bir çizgi ve yayýn baþlangýcý
yola eklenmir.Çizimin sonucunda o anki noktalar xt2,
yt2 olur.
PostScript Bezier algoritmasýna da sahiptir.Bu verilen
bir datayý þekillendirirken yeni ilaveler ve genelleþtirmeler
yapmada etkili olarak kullanýlan bir komuta yandýrýlmýstýr.Bu
komut curveto'dur ve verilen bilgi kümesini genelleþtirirken
yada bilgi ekleme yaparken kullanlýr.Komut aþaðýdaki
gibi kullanýlýr.
x1 y1 x2 y2 x3 y3 curveto
Eðri , koordinatlarý x0, y0 genel noktadan
baþlar.Bu, baþlangýç noktasýnda , x0,
y0 ve x1, y1 noktalarý arasýndaki doðruya
tegettir.Bütün bu dört nokta farklý olarak ele alynýr
ve bunlar asýl þekli oluþtururlar.
PostScript'
te yazým
PostScript desk-top oluþturmakta kullanýlan birçok
deðiþik fontlara sahiptir.Postscript'in font oluþturmakta
kullanýlan bazý kolaylýklarý da vardýr.Bunlar
fontlarýn mevcut olduðu yerlerde sözlük yýðýnlarýnýn
tanýmlanmasýyla nyapýlýr.Aþaðýdaki
PostScript programý buna örnek olarak verilebilir.
/Times-Roman findfont
15 scalefont
setfont
100 500 moveto
(I love PostScript!) show
/Times-Italic findfont
20 scalefont
setfont
100 450 moveto
(I love PostScript!) show
/Times-Bold findfont
25 scalefont
setfont
100 400 moveto
(I love PostScript!) show
/Helvetica findfont
30 scalefont
setfont
100 350 moveto
(I love PostScript!) show
/Courier findfont
35 scalefont
setfont
100 300 moveto
(I love PostScript!) show
/Helvetica-Bold findfont
40 scalefont
setfont
100 250 moveto
(I love PostScript!) show
showpage
Programdan da çýkarýlabileceði üzere findfont
komutu ile istenilen font yapýsýnaulaþýlabilir.Font'un
ismi /ile baþlar ve bir önceki parametre gibi komuta verilir./
derleyiciye bu deðer yýðýn üzerine olduðu
bibi itmesini söyler.Yýðýn operasyonlarýna
daha ayrýntýlý olarak girdiðimizde bu nokta daha
da açýklýk kazanaçaktýr.komut seçildikten
sonra scalefont komutuyla ölçülendirilme tanýmlanýr.Ölçülendirme
çarpaný bir önceki sayý olarak bu komuta verilir.Fontun
ölçülendirilmesinden sonra , setfont komutu ileriki kullaným
için fontu hazýrlar.Ýmleci uygun parametrelerle moveto
komutuyla yerleþtirdikten sonra text show komutu için bir
parametreye verilen parantez tarafýndan sarýlýr.Showpage
komutu yazýlmýþ olan materyalin gösterimini bitirir.Yukarýdaki
program farklý njoktalarla yerleþtirilmiþ ayný
text'in farklý tip ve boyutlarýndaki fontlarýný
kullanýr.PostScript için mevcut olan fontlarýn sayýsý
linux sisteminin aðaç yapýsýnda fontlarýn
yerleþim yerlerini araþtýrarak bulunabilir.Text çizgilerle
, eðrilerle ve diðer araçlarla uygun hale getirilebilir.Bundan
dolayý herçeþit yazýmda bu kural olarak sözkonusudur.Bu
sadece þekil ile ilgilidir.
PostScript'e Boyama
ve Renk Kullanýmý
PostScript dili renkli resim yapmada ve þekilleri boyamda birkaç
uygulamayla ile donatýlmýþtýr.Önçelikle
renklendirme methodunun komutlarý ile baþlayalým.PostScript
eger aksi belirtilmedikçe siyah ve beyaz renkleri standart olarak
kullanýr.Bu zamana kadar yaptýgýmýz tüm
programlarýn çýktýlari siyah ve beyazdý.PostScript
'e üç deðiþik renklendirme komutu vardýr.Bunlardan
birincisi rgb renk formatýna dayanýr.Bu formattaki tüm
renkler üç ana renk olan kýrmýzý , mavi
ve yeþilin birleþiminden oluþurlar.Renk bileþimi
0 ila 256 arasýnda deðiþen yogunluk parametleri ile verilir.Yoðunluk
parametresi üç basamklý yüzdelikli sayý
olan 111.223 gibi de verilebilir.Bu nedenle komutun PostScript tarafýndan
aþaðýdaki biçimde verilmesi beklenir.
x y z setrgbcolor
x,y,z ifadeleri kýrmýzý
yeþil ve mavi için yogunluk parametreledir.Bu baðlamda
1 0 0 setrgbcolor komutu kýrmýzý rengi , 0 1 0 setrgbcolor
komutu yeþil rengi yaratýr.Siyah renkse her deðerin 1
olmasý durmunda oluþur.Renk kurulum komutu birdaki komuta
kadar tüm boyama ve çizim iþlerine etki eder.Yeni bir
renklendirme kurulumundan sonra bir önceki rek tamamen hakimiyetini
kaybeder.Renklendirme sisteminde kullanýlan rakamlarda bir sýnýrlama
yoktur.Uygun renlendirme sisteminin kullanarak kendi istediniz renkleri
yaratabilirsiniz.bu tamamen size kalmýþ birþeydir.
Ýkinci reklendirme sistemi dört renk formatýna dayanmaktadýr.cmyk
renk sistemi diye adlandýrýlýr.Dört ana renk
karýþýmý olan sistemdeki renkler cyan , magenta
, sarý ve sýyahtýr.Her rengin 0 ila 1 arasýnda
deðiþen yogunluk deðerlerinin birleþimi ile esas renk
meydana getirilir.Bu komut aþagýdaki biçimde kullanýlýr.
w x y z setcmykcolor
w,x,y,z parametreleri ile cyan, magenta,sarý ve
siyah renklerinin ayrý ayrý yogunluklarý belirlenir.Kesirli
ondalýklý sayýlarda yogunluk parametleri olarakta
kullanýlabilir.Bu komut ayný zamanda bir sonraki renklendirme
komutu kullanýlana kadar etkinligini sürdürür.Yeni
renk belirlendiginde bu bir öncekini etkisiz kýlar(overdominate).Program
içerisinde kullanýlan bu komuttaki rakamlar için bir
sýnýrlama yoktur.
Üçüncü komut aþaðýdaki þekilde
kullanýlýr.
x y z sethsbcolor
x, y, z ifadeleri rengin üç deðiþik
özelliginin yogunluk parametreleri anlamýna gelmektedir.Bunlardan
birincisi rengin ýþýk tayfýndaki (spectrum)
yerini belirten hue'dur.Ýkincisi yoðunluk (saturation) ve üçüncüsü
de rengin parlaklýðýdýr (brightness).Bu
format tayf içindeki rengin yerleþimi bir adým yolu
ile veya parlaklýgý ve yoðunlugu kontrol edilebilir özellikte
olduðunda seçilir.hsbcolor komutuna aþina olmayan okuyucularýmýza
unix altýndaki xfig uygulamasýna bakmalarýný
oneririz.
PostScrip'te boyama ile ilgili en önemli komutlar fill ve closepathdir.Aþagýdaki
sample6.ps adlý dosya
PostScript'eki boyama ile önemli detaylarý açýklamaktadýr.
1 1 0 0 setcmykcolor
100 100 moveto
300 100 lineto
300 250 lineto
100 250 lineto
100 100 lineto
stroke
1 0.5 0.8 0 setcmykcolor
5 setlinewidth
200 200 moveto
400 300 lineto
300 300 lineto
closepath fill
stroke
1 0 0 setrgbcolor
3 setlinewidth
200 200 moveto
100 200 100 0 75 arc
stroke
newpath
400 500 200 20 50 arc
stroke
0 0 1 0.2 setcmykcolor
3 setlinewidth
200 200 100 0 360 arc
stroke
1 0 0 setrgbcolor
newpath
2 1 scale
200 300 50 0 360 arc
gsave fill grestore stroke
stroke
0 1 0 setrgbcolor
newpath
1 4 scale
100 150 40 0 360 arc
gsave fill grestore stroke
Closepath komutuyla düz bir çizgi yardýmýyla
kapatýlan iki ucu açýkþekil , fill komutu ilede
mevcut kullanýmda olan renkle doldurulur.
PostScript'te ayrýca gri renk tonalarý da mevcuttur.Bu
aþagýdaki komut yardýmýyla saðlanýr.
x setgray
burda x gri renginin tonunu belirler ve degeri 0 ila 1 arasýnda
deðiþir.0 siyaha 1 ise beyaz renge karþýlýk
gelmektedir.Aþagýdaki sample7.ps adý ile kaydedilmiþ
program konu ile ilgili açýklayýcý bilgiyi
sunmaktadýr.
0.2 setgray
10 setlinewidth
100 700 moveto
200 0 rlineto
stroke
newpath
0.3 setgray
100 600 moveto
200 0 rlineto
stroke
newpath
0.4 setgray
100 500 moveto
200 0 rlineto
stroke
newpath
0.5 setgray
100 400 moveto
200 0 rlineto
stroke
newpath
0.6 setgray
100 300 moveto
200 0 rlineto
stroke
newpath
0.7 setgray
100 200 moveto
200 0 rlineto
stroke
newpath
0.8 setgray
100 100 moveto
200 0 rlineto
stroke
Sunumumuzu bitirmeden önce PostScript'i þevkli bir
araç olarak bulan kullanýcýlara daha kapsamlý
ve daha karmaþýk programlar yazmalarýný tavsiye
ederiz.Bu serinin bir sonraki makalesinde PostScript hakkýnda daha
detaylý bilgi bulabilirsiniz.Tüm soru ve önerilerinizi
bekliyoruz.Ýlerki makalelerde bunlara deyinecegiz.
Yazar Oliver Thilmaa'a bu makalenin sunumundaki katkýlarýndan
ve yorumlarýndan dolayý teþekkür ederiz.
|