Home Index Search Links About Us
[LinuxFocus Image]
[Navegation Bar]
  News   Archives   Companies   Tips  

PostScript Dili

Yazar: Emre Demiralp

Çeviri: Deniz Bellikan


Sakla samanı gelir zamanı.
-Türk Atasözü-.

Giriş

Çizim

Yazım

Renklendirme

Daha Çok Bilgi İçin

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 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.
 
 
 
 
 
 
 
 
 
 


Yazının dergiye gönderilen aslı İngilizce'dir
Daha çok bilgi için:
  • Addison-Wesley tarafından yayınlanan Adobe Systems Inc. adlı kuruluşun kitaplarına başvurun: PostScript Language 

  • (3 Cilt: Tutorial and Cookbook, Language Reference, Program Design)
       
© 1998 Emre Demiralp
Bu sanalyörenin bakımı Miguel A Sepulveda tarafından yapılmaktadır.