14.01.2015 Views

yönet‹m

yönet‹m

yönet‹m

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Liste 13. Küreyi kesen dört kenarl› bir düzlem<br />

$sphere = $world->createObject('sphere',<br />

array('r' => 85, 'detail' => 4));<br />

$sphere->setColor(new Image_3D_Color(255, 255, 255, 150));<br />

$plane = $world->createObject('polygon', array(<br />

new Image_3D_Point(-120, 0, -120),<br />

new Image_3D_Point(-120, 0, 120),<br />

new Image_3D_Point( 120, 0, 120),<br />

new Image_3D_Point( 120, 0, -120)<br />

) );<br />

$plane->setColor(new Image_3D_Color(255, 255, 255));<br />

$plane->transform($world->createMatrix('Rotation', array(15,15,-10)));<br />

kullan›labilecek yerleflik denetimleri<br />

içerir. Görüntünün bir ekran görüntüsü<br />

afla¤›da gösterilmifltir.<br />

fiekil 15. SVGRotate<br />

sürücüsü görüntüyü<br />

gerçek zamanl› olarak<br />

ifllemek için<br />

kullan›labilecek<br />

denetimleri ve<br />

komutlar› içerir.<br />

Komut dosyas› içeren SVG dosyalar›<br />

sa¤lanan deste¤in s›n›rl› oldu¤unu<br />

göz önünde bulundurun. Sonuçta ortaya<br />

ç›kan dosya Adobe SVG eklentisi<br />

olan bir Internet Explorer'da çal›flmas›na<br />

karfl›n Firefox'ta düzgün görüntülenmemifltir.<br />

ZBuffer<br />

3 boyutlu alanlar›n 2 boyutlu bir görüntüye<br />

dönüfltürülmesi için hangi<br />

nesnelerin üst üste gelip di¤erlerini<br />

gizledi¤ini belirleyebilen özel bir algoritma<br />

gerekir. 3 boyutlu modellemede,<br />

nesnelerin 2 boyutlu bir alanda görünebilirli¤inin<br />

yönetilmesine Z-buffering<br />

(Z-arabelle¤i) ad› verilir.<br />

fiimdiye kadar size verilen örneklerin<br />

hiçbirinde di¤er nesnelerin üzerine<br />

gelen nesnelerle ilgili sorunlar yoktu.<br />

Böyle bir sorunla karfl›lafl›rsan›z, en<br />

uygun seçenek ç›kt› sürücünüzü<br />

GD'den ZBuffer'a de¤ifltirmektir.<br />

ZBuffer sürücüsü bir PNG görüntüsü<br />

oluflturmak üzere hala GD'yi kullan›r,<br />

ancak 2 boyutlu bir bit efllem üzerinde<br />

çizili olduklar›ndan 3 boyutlu nesneleri<br />

daha iyi yönetebilir.<br />

Liste 13'teki kodu kullanarak, nesnelerin<br />

Z-buffering iflleminde özellikle<br />

bir çak›flmaya neden olacak, ayn› alan›<br />

kaplayan iki nesne yaratacaks›n›z. Kürenin<br />

alfa fleffafl›k de¤eri 150 olarak<br />

verilmifltir; böylece küreyi ortas›ndan<br />

ikiye kesen düzlemi görebilirsiniz.<br />

Bu nesneyi GD sürücüsünü kullanarak<br />

oluflturursan›z, afla¤›da gösterildi-<br />

¤i gibi, küre düzlemin önünde duruyormufl<br />

gibi görünür.<br />

fiekil 16. GD sürücüsü<br />

kullan›larak ayr› ayr›<br />

oluflturulmufl üst üste<br />

gelen iki adet 3<br />

boyutlu nesne.<br />

Ancak, yaratt›¤›n›z düzlemin koordinatlar›ndan,<br />

bunun kürenin içinden<br />

geçip küreyi kesmesi gerekti¤ini bilirsiniz.<br />

Sürücünün ZBuffer olarak de¤ifltirilmesi<br />

bu sorunu çözer ve afla¤›da<br />

gösterilen PNG dosyas› ortaya ç›kar.<br />

fiekil 17. ZBuffer<br />

sürücüsü uygulanarak<br />

çözülen, üst üste<br />

gelmifl iki adet 3<br />

boyutlu nesne<br />

aras›ndaki ZBuffer<br />

çak›flmalar›.<br />

ASCII<br />

Örneklerinizde ASCII sürücüsü bulunmamaktad›r,<br />

ancak bu sürücünün amac›<br />

renkli bir ANSI uçbiriminde görüntülenecek<br />

görüntüler yarat›lmas›na olanak<br />

vermektir. Windows® kurulu bir<br />

PC'de çal›fl›yorsan›z, bu sürücüden elde<br />

edilen ç›kt› büyük olas›l›kla sizin<br />

için pek yararl› olamayacakt›r.<br />

Pratik örneklere geçifl<br />

fiimdiye kadar gördü¤ünüz örnekler bu<br />

paketin PHP'de 3 boyutlu görüntüler<br />

oluflturma yeteneklerini göstermifltir.<br />

Web sayfalar›n› yönetmek için icat edilen<br />

bu dilin bu kadar ayr›nt›l› görüntü<br />

dosyalar› oluflturmak üzere kullan›labilece¤ini<br />

kim tahmin edebilirdi Bu oldukça<br />

iyi bir olanak, ancak 3 boyutlu<br />

sihirbaz ya da hesap merakl›s› de¤ilseniz<br />

bu size s›k›c› gelmifl olabilir. Basit<br />

nesneleri ve komut sat›r› komut dosyalar›n›<br />

al›p nas›l biraz daha ilginç örnekler<br />

oluflturabilece¤inize bakal›m.<br />

[http://www.fazlamesai.net/index.php<br />

a=article&sid=3994] adresinde bu<br />

makalenin devam›n› bulabilirsiniz.<br />

Kaynaklar<br />

Bilgi Edinme<br />

• PEAR:: Image_3D ürünü hakk›ndaki<br />

bilgileri okuyabilir ve bu ürünü kurabilirsiniz.<br />

(http://pear.php.net/package/<br />

Image_3D)<br />

• "Connecting PHP Applications to<br />

Apache Derby" (PHP Uygulamalar›n›n<br />

Apache Derby'ye Ba¤lanmas›) bafll›kl›<br />

konuyu okuyarak pasta grafi¤i nas›l<br />

gelifltirece¤inizi ö¤renebilirsiniz.<br />

(http://www-128.ibm.com/<br />

developerworks/db2/library/<br />

techarticle/dm-0409casey/)<br />

• "Add interactivity to your SVG"<br />

(SVG'nize etkileflim eklenmesi) bafll›kl›<br />

konuyu okuyarak SVG görüntüleri ve<br />

komut dosyalar› hakk›nda ek bilgi edinebilirsiniz.<br />

(http://www-128.ibm.<br />

com/developerworks/db2/library/tec<br />

harticle/dm-0409casey)<br />

• "Getting started with objects with<br />

PHP V5" (PHP V5 ile nesnelere bafllangݍ)<br />

bafll›kl› konuyu okuyarak PHP<br />

V5 nesne/s›n›f sözdizimi konusundaki<br />

bilgilerinizi tazeleyebilirsiniz. (http://<br />

www-128.ibm.com/ developerworks/<br />

opensource/library/os-phpobj/)<br />

• Kartezyen koordinat sistemi hakk›nda<br />

ek bilgi edinmek için Cartesian coordinate<br />

system bafll›kl› sayfaya bakabilirsiniz.<br />

(http://en.wikipedia.org/<br />

wiki/Cartesian_coordinate)<br />

• PHP ve gd kitapl›¤›n› kullanarak dinamik<br />

bit efllem görüntüleri oluflturma<br />

konusunda bilgi için Generate dynamic<br />

bitmap graphics with PHP and gd"<br />

(PHP ve gd ile dinamik bit efllem grafikleri<br />

oluflturma) bafll›kl› konuyu okuyabilirsiniz.<br />

(http://www-<br />

128.ibm.com/developerworks/edu/<br />

wa-dw-wa-bitmaphp-i.html)<br />

• PHP'de nesne odakl› bir grafik katman›<br />

oluflturma hakk›nda bilgi almak<br />

için "Create graphics the smart way<br />

with PHP" (PHP ile ak›ll› grafikler yaratma)<br />

bafll›kl› konuyu okuyabilirsiniz.<br />

(http://www-128.ibm.com/<br />

developerworks/edu/wa-dw-wabitmaphp-i.html)<br />

• developerWorks teknik etkinlikler ve<br />

Web yay›nlar› sayesinde güncel bilgiler<br />

edinebilirsiniz.<br />

HABER LINUX 59

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!