Lajme

Paletat kosinusore në R: metoda e thjeshtë për ngjyrat e vazhdueshme

Duke u kthyer në historikun tim në këtë blog, e kuptova se kam një tendencë të përhershme për të shkruar postime të gjata. Është një “defekt karakteri” që e njoh mirë, dhe ndonjëherë ndjej një nevojë psikologjike për të thelluar çdo temë deri në errësirë, për të analizuar çdo detaj dhe për ta sjellë në dritë për lexuesit e durueshëm. Në një të dielë të qetë vendosa të provoja veten: a mund të shkruaj një artikull të shkurtër pa u kthyer në një monografi të errët? Ky provim erdhi pas një postimi në Mastodon nga Mike Cheng, i cili propozoi një metodë shumë të thjeshtë për të prodhuar paleta ngjyrash të vazhdueshme në R.

Metoda bazohet në një ide të thjeshtë të Inigo Quilez për “paletat procedurale”. Ne marrim katër vektorë tre‑dimensionalë — a, b, c dhe d — që përfaqësojnë ngjyrat bazë. Duke përdorur funksionin colors() në R për t’i zgjedhur, mund të krijojmë një paletë të rrjedhshme me formulën:

f(t) = a + b · cos(2π (c·t + d)),

ku t varion nga 0 deri në 1. Kjo formulë është e shpejtë, falë optimizimeve moderne të CPU‑ve dhe GPU‑ve për vlerësimin e kosinusit. Në kodin tim e kam shtuar një rregullim të vogël mbi implementimin e Mike‑s, dhe për ta shfaqur rezultatin kam përdorur funksionin shade_strip() që prodhon një shiriti të ngjyrave në formë vizuale.

Për të testuar sa mirë funksionojnë këto paleta në artin gjenerativ, kam prodhuar 12 “seed” të radhës, duke filluar nga seed = 11 (sepse më pëlqeu pjesa e parë e krijuar me këtë ngjyrë). Çdo seed u përdor në sistemin e ndarjes (subdivision()) që kam prezantuar në një workshop të mëparshëm, dhe rezultatet varionin nga të papritura deri në të mrekullueshme. Një tjetër grup figurash u krijua me sistemin Lissajous, duke përdorur të njëjtën paletë ngjyrash; edhe këtu rezultatet ishin të pranueshme dhe shpesh më të mira seçka që pritej nga një metodë kaq të thjeshtë. Pa ndonjë optimizim të veçantë për të përputhur ngjyrat me strukturën e veprave, rezultatet ishin mbresëlënëse pozitive.

Në përfundim, ky provim i shkurtër provon se mund të shkruaj një postim të përmbledhur pa u zhdukur në një roman teknik. Në pak orë, nga koncepti deri te demonstrimi, metoda e kosinusit në R ofron paleta të gjalla dhe të përdorshme për projekte artistike gjenerative. 🎉


Leave a Reply

Your email address will not be published. Required fields are marked *