Já, hana nú .. horfði ekki á sjónvarpið með Rannveigu í gær, var þessi í stað að dunda mér í að prófa DHTML upp á nýjan leik. Hef ekki gert neitt lengi skemmtilegt DHTML í nokkur ár og langaði aðeins að prófa hvort eitthvað nýtt væri á seyði.
Í einhverjum óheyrilegum leiðindum þegar ég var úti í Kanada þá hafði ég skrifað einfaldan kóða sem birti NxN matrixu af pixelum á vefsíðu. Hægt var svo að smella á hvern pixelinn og breyta litinum á honum. Langaði að prófa mig áfram í því að búa til naívt teikniforrit í vafrara. En hef svo sennilega verið kallaður út í bjór eða eitthvað þvíumlíkt því ekki náði það langt.
En jú ég tók þetta project og ákvað að nota það sem grunn. Gekk út frá því í byrjun að ég gæti, í stað þess að teikna hvern pixel (ísl: kassa), frekar látið kassana teikna sig sjálfa eftir einhverjum reglum. Þannig væri jafnvel mögulegt að búa til einhver falleg form og hreyfimyndir. Gaman :)
Frekar einfalt að gera það á svona quick and dirty hátt, myndirnar teikna sig og hægt er að stækka svæðið og kassana sem birtast ásamt því að stoppa hreyfinguna.
Helsta vandamálið er að vegna þess að ég uppfæri myndina nú ekki á neinn sérstaklega hagkvæman máta, þá keyrir þetta svolítið hægt.
Hinsvegar fannst mér mun áhugaverðara að gera þetta almennilega gagnvirkt og hvernig hægt væri að skrifa inn og keyra sínar eigin reglur beint inn í vefsíðuna sjálfa. Loksins komst að leið sem gerði það kleyft að smíða og virkja JavaScript kóða á keyrslutíma. Því bætti ég við seinni hlutanum:
Þetta textabox gerir hverjum sem er kleyft að eiga við kjarnann í teiknirútínunni og ákvarða hvaða kubbar eru uppfærðir og hvenær. Fallið steptile(i,j) sér um að uppfæra litinn í kubbi í röð i, dálki j. Ég prófaði nú bara að fikta með sínus og kósínus kúrfur ásamt einhverri fallegri symetríu. Að fikta er gaman! :D
Prófiði:
pixemotions(er í hálfgerðu tilrauna formi ennþá þannig að ég ábyrgist ekki stöðugleikann) :)
Ef þið fáið út einhvert skemmtilegt mynstur, endilega postiði kóðanum fyrir það í komment, alltaf gaman að prófa og sjá hvað aðrir gera.