Razvoj naprednih dinamičkih PostScript procedura

Klaudio Pap

Sažetak

U ovom članku se prikazuje novi način stvaranja dinamičkih procedura baziranih na PostScript jeziku koje ne postoje u konvencionalnim grafičkim programima. U klasičnom PostScript programiranju često se gubi upravljivost nad ciljnom grafikom koja se u svom razvoju mora cijelo vrijeme mijenjati, naknadno dizajnirati, dodatno redimenzionirati i kolorirati. Na poseban način se ugrađuje korisnička interaktivna kontrola nad izlaznom rezolucijom rezultata kao i dinamička izgradnja korisničkog upravljačkog sučelja za svaki željeni dizajnerski paramatar za dotičnu vrstu grafičkog rješenja.  Na taj način su se stvorile potpuno nove mogućnosti stvaranja originalnih dizajnerskih rješenja.

Ključne riječi: PostScript, dinamička grafika, računarska grafika, grafička tehnologija

Uvod

Direktnim programiranjem u PostScript jeziku moguće je dobiti puno složenije, bogatije i naprednije grafike [1] nego u klasičnim dizajnerskim programskim paketima. Naredbe PostScript jezika [2] su u potpunosti orijentirane na grafičke oblike i atribute svih vrsta. Programiranje se mora posebno učiti jer je zbog stogovne definicije jezika slaganje programskih naredbi i njihovih parametara potpuno drugačije nego kod mnogih drugih viših programski jezika. Definicija varijabli, programskih polja, procedura, funkcija i mnogih drugih programskih struktura se potpuno razlikuje od uobičajenih postupaka u svijetu programiranja. Na slici 1 prikazana su dva minimalna primjera klasičnog PostScript programa. Za definiciju konstante potrebno je samo napisati njen iznos i iza nje ugraditi razmak između riječi (kod 32) što će uzrokovati stavljanje konstante na vrh operativnog stoga.

a

Slika 1. Dva minimalna primjera klasičnog PostScript programa

 

Naredbe uzimaju svoje parametre u obliku konstanti sa stoga. Svaka naredba je mikrokodirana tako da »zna« koliko parametara mora uzeti sa stoga. Ukoliko na stogu nema priređenog parametra PostScript interpreter objavljuje grešku. Nakon što naredba uzme parametar sa stoga, vrh stoga se pomiče za jednu adresu niže jer se parametar briše s vrha stoga. U drugom primjeru na slici 1 se vidi isti primjer s upotrebom stoga rječnika. U PostScript jeziku nema uobičajene definicije varijable već se upotrebom naredbe def stvara definicija para koji se sastoji od alfanumerika i konstante. Takav se par kopira na stog rječnika. Tako upotrebljena varijabla se koristi tako da se u budućem kodu navede alfanumeričko ime para nakon čega stog rječnika isporuči drugi dio definicije para na operativni stog kojeg PostScript interpreter operativno koristi za izvršavanje. Ista je metodologija stvaranje funkcija i procedura u PostScript jeziku.
Mana takvog programiranja je što se često gubi upravljivost nad ciljnom grafikom koja se u svom razvoju mora cijelo vrijeme mijenjati, naknadno dizajnirati, dodatno redimenzionirati i kolorirati. Tada je i te kako bitno poznavanje svakog dijela programa pa se dolazi do pretpostavke da dizajner mora biti i dobar PostScript programer. Ako je i taj uvjet ispunjen moraju se u programu posebno naznačiti i komentirati svi  parametri koji utječu na određene atribute ciljane programibilne grafike. Zbog toga se pristupilo izradi posebnih dinamičkih procedura koje bi olakšale upotrebu postojećih PostScript programa i za PostScript programere kao i za grafičke dizajnere.

Stvaranje dinamičke Postscript procedure

Da bi se postavio jedan općeniti standard stvaranja interaktivnog sučelja treba prvo definirati varijable koje će biti programsko sučelje između samog PostScript programa i interaktivne korisničke maske preko koje će se vršiti izravan utjecaj na izvršavanje programa u skladu s dizajnerskim zahvatima nad originalnim programom. Definirano je da to bude deklarirano na početku programskog koda unutar znakovnih nizova % var begin% i % var end (Slika 2).

a

Slika 2. Priprema ulaznih varijabli za dinamičku izgradnju interaktivnog sučelja pomoću tehnologije regularnih izraza

Tu se upotrijebila tehnologija regularnih izraza koja se pokazala dovoljna za razvoj  kvalitetnih dinamičkih PostScript procedura. Najčešći regularni izrazi koji su se koristili su:

  • /\d+/ % regularni izraz koji prihvaća samo brojke
  • /.*/ % regularni izraz za bilo koje znakove
  • /\s*\(.*\)\s*/ % regularni izraz za upis teksta

Na slici 3 se vidi direktna veza definicija sučeljskih varijabli i pripadna konstrukcija interaktivnog sučelja za korisnika. Prvo se iza riječi var navede željena PostScript varijabla koja će biti kontrolirana preko sučelja, a potom se u uglatoj zagradi definira željeni početni iznos u programu, a vidljiv je u korisničkom sučelju. U vitičastoj zagradi se definira željeno ime na korisničkoj masci uz početnu vrijednost koje može, ali ne mora biti jednako imenu programske varijable. U okrugloj zagradi se navodi u matričnij formi željena pozicija sučeljske varijable na ekranskoj masci u donjem djelu u redak i stupac formi. Tako se na primjer sučeljska varijabla y2 nalazi na poziciji u drugom retku i drugom stupcu na korisničkoj masci što se dobilo s navođenjem (2,2) u deklarativnom djelu programa. Pomoću navođenja regularnih izraza u deklarativnom dijelu se bilo koji korisnički upis filtrira da se ne bi događale neželjene PostSript greške.

a

Slika 3. Konstrukcija korisničkog sučelja pomoću sučeljskih varijabli u PostScript jeziku

Na korisničkom sučelju je postavljena  početna rezolucija rezultata na 300 dpi što je dovoljna rezolucija za startna eksperimentiranja prije finalizacije dizajna. Početna širina i visina digitalnog platna je postavljena na 500 odnosno 600 tipografskih točaka (point), a tipografska točka je i po definiciji mjerna jedinica u PostScript koordinatnom prostoru.
Na slici 3 je žutom bojom prikazan postupak dodavanja novih dizajnerskih grafičkih varijabli s kojima se želi ubuduće dizajnerki upravljati finalnim grafičkim rješenjem. U ovom slučaju se želi dodatno upravljati debljinom i svjetlinom linije.

a

Slika 4. Postupak dodavanja novih dizajnerskih grafičkih varijabli na korisničko sučelje

Eksperimentalni rezultati razvijenih dinamičkih PostScript procedura

Pomoću navedene metodologije za dinamičku izgradnju dizajnerskog korisničkog sučelja napravljeni su eksperimentalna sučelja za neke primjere iz knjige PostScript [3]. Prvo sučelje (Slika 4) kontrolira repetiranje zadanog grafičkog oblika preko tri varijable: broj ponavljanja, sukcesivni relativni pomak po horizontali i posebno po vertikali.

a

Slika 5. Repetiranje zadanog grafičkog oblika preko varijabli broj ponavljanja, relativni pomak po horizontali i relativni pomak po vertikali

Na slici 5 se dizajnerski kontrolira samo izbor znakova u dizajnerskom grafičkom rješenju. To znači da se cijelo vrijeme kroz isprogramiranu masku vidi linijska struktura što se kroz sučelje ne mijenja.

a

Slika 6. Sučelje za dinamičku promjenu izbora znakova u dizajnerskom rješenju

Neki puta se želi intervenirati na grafičko rješenje zbog promjene različitih uvjeta aplikacije zbog tehnologije tiska i različitih materijala. Na slici 6 je prikazan primjer indirektne kontrole svetline cijele slike preko gustoće linije. Na korisničkom sučelju se upravlja faktorski preko pojma svjetline koji utječe na broj ponavljanja crtanja Bezier linija u for programskoj petlji. 

a

Slika 7. Indirektno upravljanje nad svjetlinom objekta preko gustoće linija

Na slici 7 se vidi primjer upravljanja bojom lika preko parametara CMYK kolor sustava. Također se upravlja indirektno s gustoćom grafike preko svjetline koja se može kontrolirati u intervalu od 0 do 1. Prikazana grafika se kontrolira preko eofill naredbe (even-odd fill) gdje se ispuna i praznina kontrolira preko parnog odnosno neparnog prelazaka granica zrake iz promatrane površine prema beskonačnosti.

a

Slika 8. Upravljanja bojom lika preko parametara CMYK kolor sustava i indirektno preko svjetline od 0 do 1

Zaključak

U ovom radu je prikazana nova metoda dinamičke izgradnje korisničkog sučelja za grafičko dizajnersko upravljanje stvaranju PostScript grafika. Ugrađen je poseban standard deklaracija željenih upravljačkih varijabli koje direktno utječu na stvaranje korisničke maske i definiciju početnih vrijednosti. Upravljivost nad željenim dizajnom se može postići direktno i indirektno. Direktni način koristi sučeljske varijable tako da upisane vrijednosti preko sučelja nemaju dodatnu programsku korekciju ili konverziju. Za takvo korištenje se moraju poznavati osnove PostScripta jer se prilikom unosa moraju poštivati domene parametara određenih PostScript naredbi koje doživljavaju promjenu. U indirektnom načinu korisnik ne treba poznavati detalje već samo način upotrebe indirektno preko na primjer pojmova svjetline, debljine i slično. Ovdje se upisana vrijednost preko sučelja konvertira ili faktorizira za željenu naredbu ili programsku funkciju koja je ključna za prikaz lika i njegovih svojstava. Na taj način su se stvorile potpuno nove mogućnosti stvaranja originalnih dizajnerskih rješenja koja se uvijek mogu redizajnirati, redimenzionirati odnosno oblikovati po korisničkoj želji.

References

1. Foley, J. D.; Van Dam A.; Feiner S. K. & Hughes J. F., (1997). Computer Graphics Principles and Practice, Addison-Wesley, ISBN 0-321-21056-5
2. Adobe Systems I., (1999). PostScript Language Reference, third edition, Adobe Systems Incorporated, pp. 482, ISBN 0-201-37922-8, San Francisco CA
3. V. Žiljak, K. Pap: "PostScript", FS d.o.o., Zagreb, 1998, ISBN: 953-199-000, UDK: 681.3.06:655.26, 145p

 

Patrik Ervells latest collection is ironically titled “Software”ADIDAS ORIGINALS TUBULAR SHADOW. In the notes from the presentation, Ervell says he was interested in developing tension between nostalgia and sci-fi,NIKE ZOOM WINFLO 3 and even included 90s cyberpunk amongst his influences. Ervell developed this point of view by creating an imaginary software company called Idegen software systems. He then re-appropriated the company’AIR JORDAN XXXI MENs logo in several of the collection’s garments. Elsewhere,MBT TARIKI MEN mohair coats with oversized lapels made an appearance alongside mock neck tees,NIKE AIR JORDAN RETRO 5 police-inspired ribbed sweaters,MBT FORA GTX WOMEN flight bombers, and polyurethane leather coats. The setting was also suitably dystopian, and the resulting ambiance was something akin to if the creators of Deutschland 83 and Hackers met up and decided to create a collection… We mean that as a compliment.Yesterday afternoon,JORDAN CP3 IX MEN artist JR spent the day working on his latest collaborative piece with Daniel Arsham in Greenpoint,NIKE AIR MAX 90 Brooklyn,MBT KIMONDO GTX MEN NYC. Connecting the lines between art, architecture, dance and theater, Daniel Arsham has been known to subvert existing architectural structures in unconventional,NIKE CLASSIC CORTEZ NYLON playful ways; confusing and confounding the expectations of space and form. Source: Street Art News .