Crtanje u postscriptu II, 13. svibnja 2013. godine

krug prešan u peterokut

Nakon >> prvog dijela uvoda u postscript, evo i drugog. Ovdje ću objasniti kako se u postscriptu "slika", tj. kako se, pored linija koje sam objasnio u >> prethodnom postu, dobivaju obojene plohe. Najprije načinimo zaglavlje PS datoteke:

%!PS-Adobe-2.0
gsave
1 setlinejoin
1 setlinecap
newpath


Obojenu plohu u postscriptu možemo najjednostavnije zamisliti kao poligon obojene unutrašnjosti. Najprije postavimo boju unutrašnjosti (u ovom slučaju nijansu sive):

0.75 0.75 0.75 setrgbcolor

A onda pomaknemo (moveto) "kursor" na jednu od točaka poligona:

274.5 312.1 moveto

Sa lineto komandama pomičemo se po vrhovima poligona koji ćemo obojiti, sve to točke prije one početne, na koju smo otišli s moveto komandom:

275.2 312.6 lineto
276.2 312.0 lineto
276.4 310.9 lineto
275.7 310.5 lineto
274.7 310.9 lineto


I na kraju, s naredbom fill ispunjavamo poligon bojom koju smo postavili (0.75, 0.75, 0.75):

fill

Naredba fill boji i zatvara poligon, spajajući zadnju točku poligona (274.7, 310.9) s prvom (274.5, 312.1), kako je ilustrirano na slici koja je otvorila post.

Ovu proceduru ponavljamo onoliko puta koliko poligona želimo nacrtati. Na kraju datoteku zatvaramo:

grestore
showpage


Postscript datoteku iz koje je nastala slika koja je otvorila ovaj post možete >> downloadirati OVDJE.

Osim poligona, u postscriptu je vrlo jednostavno crtati krugove, odn. dijelove kruga, tj. kružne lukove / isječke uporabom naredbe arc. Sliku ispod načinio sam isključivo planiranim pozicioniranjem različito obojenih krugova tako da se dobije trodimenzionalna reprezentacija virusa. Krugovi, koji predstavljaju amino-kiseline, različito su obojeni ovisno o njihovoj (trodimenzionalnoj) udaljenosti od (trodimenzionalnog) centra oblika / virusa.

3D virus u postscriptu

Krug crtamo tako da mu najprije specificiramo boju:

0.999 0.649 0.0513 setrgbcolor

A onda ga nacrtamo naredbom:

309.37 366.75 2.39 0 360 arc fill

Prva dva broja (309.37, 366.75) specificiraju centar kruga, treći broj (2.39) specificira njegov radijus, a četvrti i peti broj (0, 360) specificiraju početni i finalni kut kružnog luka - za pune krugove ovi su brojevi uvijek 0 i 360, ali se zanimljivi oblici (polukugovi, četvrtkrugovi i slično) mogu dobiti smanjenjem finalnog kuta. Uporabom isključivo arc naredbi mogu se lako dobiti pie-chart dijagrami. Konačno, naredba arc povlači kružni luk, a naredba fill ga zatvara i ispunjava zadanom bojom.

Kad se u postscriptu mnogi oblici međusobno prekrivaju, kao što je slučaj s prikazanim virusom, treba imati u vidu da postscript crta preko onoga što je već nacrtao, tj. oblici koji se specificiraju u PS datoteci kasnije, crtaju se preko onih specificiranih ranije.

Premda postscript po svojoj zamisli nije (prije svega) namijenjen 3D vizualizaciji, gornji primjer, a i primjeri iz >> prethodnog posta pokazuju da se on u te svrhe može koristiti te da su rezultati zadovoljavajući. Za uporabu postscripta u ove svrhe ključno je matematičko razumijevanje perspektive o kojem ću uskoro objaviti jedan post.

Slika ispod prikazuje isti virus vizualiziran u POV-Rayu - vidi se koliko sjene na objektu doprinose poimanju njegove trodimenzionalnosti. Također jasno uočavamo periodičnost proteinske strukture (heksamere) virusnog omotača te vidimo da se radi o T=21 virusu (vidi >> poster o T broju za detalje).

3D virus u POV-Rayu

NADOPUNA (21. svibnja 2013.): A >> evo i trećeg dijela uvoda u postscript.

<< Mi ljudi >> Drawing with postscript III

Zadnji put osvježeno: 21. svibnja 2013. godine.