Archive for May, 2008

Cousins?

May 21st, 2008

Michael C. Hall (bolj znan v vlogi Dexterja):

Michael C. Hall

Derek Long:

Derek Long

Očitno so začeli človeka klonirati že DOOOOLGO nazaj.

ToboAds open source plugins

May 21st, 2008

Danes smo odprli uradni repozitorij za ToboAds plugine, s čimer želimo olajšati integracijo ToboAds sistema s širokim spektrom aplikacij. Projekt smo odprli pod LGPL licenco in se nahaja na Google Code:

http://code.google.com/p/toboads-plugins/

Trenutno so podprte platforme Joomla, Wordpress in Symfony Framework. Vsi plugini so trenutno v alfa izdaji, kar pomeni, da zaenkrat še ne zagotavljamo 100% produkcijske stabilnosti le-teh. Če jih uporabljate in opazite kakšno nepravilnost, pa nam lahko to sporočite preko issue trackerja.

Kako meriti berljivost črk?

May 17th, 2008

V kratkem mi je bila zadana naloga izdelati zaslon, ki bo prikazoval točke na projekciji zaslona preko PC vmesnika. Gre za preprost program, ki pravzaprav prikaže tabelo s par vrsticami in stolpci, lepo oblikovana in na splošno gledljiva reprezentacija stanja. I, kaj bi okolišil – gre za Improvizijo 2008.

Ker pa sem hotel tokrat preveriti, če bo projekcija dejansko služila svojemu namenu, sem posvetil nekaj časa raziskovanju človeškega očesa. Zakaj nekaj? Ker nikoli nisem vedel, kako velike črke moram dejansko pokazati na zaslonu, da bo zadeva berljiva vsem (no, večini) v dvorani.

Začenši s člankom o človeškem očesu sem razbral, da je pri idealnih opazovalnih pogojih maksimalna resolucija 0,027° (ali 1,6 kotne minute vidnega polja). Za tiste, ki niste nikoli uporabljali teleskopa ali se ukvarjali s tem, kaj to pomeni, bo naslednja skica to razjasnila:

Trikotnik

x tukaj predstavlja kot pravokotnega trikotnika, d in h pa njegovi kateti. 2x je v tem primeru kot, ki ga predstavlja nek odsek vidnega polja, d razdalja do objekta in 2h višina objekta, ki ga opazujemo (trikotnik je pravzaprav zrcaljen navzdol, a sem zaradi preprostosti računa vzel pravokotni trikotnik namesto enakokrakega). Velja torej tangentna zveza med obema:

Enačba za trikotnik

Če vstavimo številke (2x = 0,027° in d je v mojem primeru 30 metrov), dobimo velikost “piksla” človeškega očesa na razdalji trideset metrov – vrednost je enaka 2h oziroma v mojem primeru 1,2 cm.

Naslednji korak je bil test minimalne velikosti fonta, pri čemer so črke ugodno berljive. V ta namen sem na hitro zgeneriral 4 različne fonte v različnih velikostih (od zgoraj navzdol: Arial, Verdana, Tahoma, Segoe UI, v različnih velikostih: 8-16 pikslov in 30 pikslov):

Fonti

Sam sem ocenil, da je velikost fonta 10 px dober kompromis med minimalno vidljivostjo in velikostjo, zato sem sklenil, da preračunam, kako velik font mora biti na displayu, da bi na 30 metrov človeško oko zaznalo 10 “vpx” font (”vpx” enota zato, ker je navidezna – virtual – enota, navidezni piksel iz izračunane resolucije človeškega vida, glede na zgornjo oceno). Če je minimalna velikost 10 vpx, mora potem sam font biti vsaj 12 cm visok. Na tej točki naj pojasnim, da sem za mero razpoznavnosti fonta vzel povečavo tega fonta na desetkratni velikosti brez glajenja (antialiasing) in primerjal berljivost kockastega fonta (10-kratna povečava) in z Gauss glajenjem obdelanega fonta (v tem primeru Gauss radija 7 pikslov), da bi simuliral optično glajenje pri tej navidezni resoluciji:

Fonti

Fonti

Torej, vemo, kako velike črke morajo biti na končnem zaslonu – še vedno pa nimamo velikosti v pikslih na ekranu, ki ga bomo uporabljali. Le-ta je ocenjen na 3m širine, pri čemer bo resolucija projekcije 1024×768. Če preračunamo velikost enega realnega piksla v centimetrih, dobimo:

1024 px / 300 cm = 3,41 px / cm

Če torej potrebujemo 12 cm visok font, zmnožimo obe številki in dobimo končno velikost v realnih pikslih na zaslonu projekcije: 41 px.

Sedaj lahko s preprostim izračunom dejansko preverite, ali bo tekst, ki ste ga mislili postaviti na vidno mesto, dejansko vidno z razdalje, ki ste si jo zamislili, ko ste pripravljali gradivo, naj bo na digitalnem ekranu ali pa na fizičnem plakatu, sliki ali drugem grafičnem elementu.