Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
amac›yla bu sorun için bir çözüm bulmal›s›n›z.<br />
Image_3D paketi yaln›zca<br />
statik görüntü biçimlerini destekler,<br />
bu nedenle, 3 boyutlu alanlar› canland›rmak<br />
için basit bir JavaScript çözümü<br />
oluflturacaks›n›z. Sonuçta da, veri<br />
raporlar›n›n ifl uygulamalar› ile bütünlefltirilebilen<br />
renkli pasta grafikler biçiminde<br />
görüntülenmesi için bir PHP s›-<br />
n›f› yazacaks›n›z.<br />
Sistem gereksinimleri<br />
Devam etmek için afla¤›daki yaz›l›m ve<br />
araçlar gereklidir:<br />
PHP V5<br />
Image_3D paketi, PHP V5 nesne ve s›-<br />
n›f sözdizimi kullan›larak yaz›l›r.<br />
Image_3D<br />
PEAR paketinin kurulmas› gerekir. Genelde,<br />
makinenize kök (ya da yönetici)<br />
olarak erifliminiz varsa, Image_3D'yi<br />
kurman›z kolay olur. Image_3D alfa sürümde<br />
oldu¤u için, PEAR kuruluflu paketin<br />
"sabit" olmad›¤›n› belirtebilir.<br />
Kuruluflu uygulamak için -f seçene¤ini<br />
kullan›n:<br />
pear install -f Image_3D<br />
GD<br />
Bu grafik kitapl›¤›, PNG dosyalar›n›n<br />
ç›kt›s›n›n al›nmas› için gereklidir. Asl›-<br />
na bak›l›rsa, GD yoksa, Image_3D'den<br />
di¤er dosya tipleri de oluflturulabilir.<br />
PHP V4.3 itibariyle, GD kitapl›¤›n›n bir<br />
sürümü yeni PHP kurulufllar›yla birlikte<br />
gönderilir. Büyük olas›l›kla, PHP'yi<br />
yeniden derlemekle u¤raflman›z gerekmez.<br />
Mevcut PHP kuruluflunuzda<br />
GD'nin etkinlefltirilip etkinlefltirilmedi-<br />
¤ini görmek için phpinfo()'yu kullanabilirsiniz.<br />
Web sunucusu<br />
Bu e¤itici yaz›n›n ikinci yar›s›ndaki örnekler<br />
Web sitesinde kullan›lmak üzere<br />
oluflturulabilir. Haz›rda bir Web sunucunuz<br />
yoksa, Apache'nin aç›k kaynak<br />
Web sunucusu ve IBM HTTP Server,<br />
kullanabilece¤iniz iki uygun seçenektir.<br />
SVG viewer<br />
SVG dosyalar›, yerel SVG deste¤i içeren<br />
Mozilla Firefox V1.5 ürününde görüntülenebilir.<br />
Internet Explorer kullan›c›lar›,<br />
Adobe SVG eklentisini yükleyerek<br />
taray›c›lar›na SVG deste¤i ekleyebilirler.<br />
Önkoflullar<br />
Image_3D'nin arabiriminin tamam›<br />
nesne odakl› oldu¤u için, bu e¤itici yaz›da,<br />
nesnelere ve s›n›flara iliflkin en<br />
az›ndan temel bilgilere sahip olundu¤u<br />
varsay›l›r. Bu e¤itici yaz›n›n ilk yar›s›nda<br />
gösterilen komut sat›r› PHP örneklerini<br />
yürütmek için Linux® kabuk hesab›na<br />
ya da bir Windows® komut istemine<br />
eriflim gerekir. Temel düzeyde<br />
JavaScript deneyimi de gereklidir.<br />
Alan›n›z›n düzenlenmesi<br />
Ço¤u PHP gelifltiricisinin 2 boyutlu<br />
grafiklerden az da olsa anlad›¤›n› söylemek<br />
yanl›fl olmaz. Büyük olas›l›kla<br />
ço¤u, Adobe Photoshop, Corel Paint<br />
Shop Pro, GIMP ya da baflka bir program<br />
kullanarak en az›ndan birkaç temel<br />
grafik oluflturmufltur. Önce, 3 boyutlu<br />
bir alan›n ya da dünyan›n al›fl›ld›k<br />
2 boyutlu tuvalle karfl›l›kl› olarak nas›l<br />
iliflkilendirilebilece¤ini tart›flarak bafllayal›m.<br />
Ayr›ca, ›fl›klar, renkler ve dönüflümler<br />
gibi 3 boyutlu görüntülerinizi<br />
tasarlaman›za yard›m› olacak araçlar›<br />
da inceleyeceksiniz.<br />
Bafllarken<br />
S›radan grafik programlar›, bit efllemi<br />
görüntülerken X ve Y eksenleriyle çal›-<br />
fl›r. Her bir piksel bu eksenlerde yerlefltirilir.<br />
Bafllang›ç noktas› (X=0, Y=0),<br />
üst sol köflededir. 30, 20 koordinatlar›ndaki<br />
bir piksel, bafllang›ç noktas›n›n<br />
30 birim (genelde pikseldir) sa¤›nda,<br />
20 birim de alt›ndad›r.<br />
3 boyutlu alan›n›zda çal›fl›rken,<br />
bafllang›ç noktas› alan›n köflesinden<br />
çok, merkezini simgeler. Üçüncü eksen,<br />
Z, X ve Y eksenlerine karfl›l›kl› olarak<br />
diktir. Z ekseninin pozitif yönünü<br />
bilgisayar›n›z›n ekran›n›n içine do¤ru<br />
olarak düflünün. Negatif yön, ekrandan<br />
uza¤a do¤ru olacakt›r. fiekil 1 içinde<br />
her bir eksenin yönü gösterilir.<br />
fiekil 1. 3 boyutlu<br />
koordinat sistemi<br />
Koordinat sisteminde 3 boyutlu<br />
nesneler olufltururken, her bir nesnenin<br />
ya da noktan›n bafllang›ç noktas›na<br />
olan uzakl›¤›, negatif ya da pozitif birim<br />
olarak ölçülür.<br />
3 boyutlu araç tak›m›n›z<br />
3 boyutlu alan›n›za yerlefltirdi¤iniz her<br />
bir nesne için (koniler, küreler, vb.)<br />
PHP nesneleri oluflturacaks›n›z. Ayr›-<br />
ca, bu alan içindeki ›fl›k kaynaklar›n›<br />
simgeleyen PHP nesneleri de oluflturacaks›n›z.<br />
Renkli nesneler her bir flekli<br />
ya da ›fl›k kayna¤›n› de¤ifltirmekte kullan›l›r<br />
ve bir nesnenin alfa fleffafl›¤›n›<br />
ayarlamakta da kullan›labilir. Her bir<br />
nesnenin boyutunu, dönüflünü, konumunu<br />
dönüfltürürken ya da hatta alan›n<br />
bütününü dönüfltürürken matris<br />
nesneleri oluflturulur.<br />
‹lk dünyan›z›n oluflturulmas›<br />
‹lk görüntünüz, Image_3D ile oluflturulan<br />
herhangi bir görüntü için gerekli<br />
olan tüm temel ö¤eleri içerir. Bu örnekten,<br />
paketteki tüm temel nesneleri<br />
h›zla inceleyebilecek do¤ru alana ve<br />
›fl›¤a sahip olacaks›n›z.<br />
Koniler<br />
Bu ilk örne¤in amac›, beyaz bir artalanda<br />
›fl›kland›r›lm›fl koni fleklinde bir<br />
nesne yarat›lmas›d›r. Sonuçta ortaya<br />
ç›kan alan, 400x400 piksellik bir görüntüye<br />
dönüfltürülecektir.<br />
Oluflturdu¤unuz her görüntü,<br />
$world olarak adland›raca¤›n›z yeni bir<br />
Image_3D nesnesi oluflturularak bafllar.<br />
Alan›n artalan rengi, Image_3D_Color<br />
nesnesi oluflturularak<br />
ayarlan›r. Bu nesnenin yap›c›s›n›n üç<br />
parametresi, oluflturmak istedi¤iniz<br />
rengin RGB de¤erleridir.<br />
Alanda iki adet Image_3D_Light<br />
nesnesi oluflturursunuz. Mavi bir ›fl›k<br />
olan ilkinin, bafllang›ç noktas›n›n soluna,<br />
ekran›n düzleminden uza¤a yerlefltirildi¤ini<br />
düflünün. ‹kincisi de bafllang›ç<br />
noktas›n›n üst sa¤ köflesine, yine<br />
ekrandan uza¤a yerlefltirilsin. Bu nesne,<br />
yeflil olsun.<br />
Sonra, alana bir koni yerlefltirilsin.<br />
Bu nesneye atad›¤›n›z rengin beyaz oldu¤una<br />
dikkat edin. Böylece, nesne<br />
alana yerlefltirdi¤iniz iki ›fl›¤›n rengini<br />
al›r. Bu yöntem, farkl› renklere sahip<br />
bir nesnenin karfl›t yönlerini vurgulamak<br />
için en iyi yöntemdir.<br />
52 HABER LINUX