Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
yutlar› ne olursa olsun, tüm küpler ayn›<br />
düzeyde ayr›nt› içerir. Küp yarat›rken,<br />
createObject() için ikinci parametre,<br />
kübün geniflli¤i, yüksekli¤i ve<br />
derinli¤inden oluflan üç de¤erli bir dizilimdir.<br />
Küp olufltururken, Liste 1 içinde<br />
$cone yerine afla¤›daki sat›rlar› yazabilirsiniz:<br />
$cube = $world->createObject('cube',<br />
array(100, 100, 100));<br />
$cube->setColor(new Image_3D_Color(255,<br />
255, 255));<br />
$cube->transform($world->\<br />
createMatrix('rotation', array(-<br />
60,60,40)));<br />
Sonuçta ortaya ç›kan görüntü flöyle<br />
olur:<br />
fiekil 6. Image_3D paketi<br />
kullan›larak oluflturulmufl<br />
3 boyutlu küp.<br />
Küreler<br />
Liste 1 içindeki ilk örne¤inizi düzelterek<br />
devam edersek, koniyi küre ile de-<br />
¤ifltireceksiniz. Burada, ikinci parametre,<br />
kürenin yar›çap›n› simgeleyen r<br />
için bir de¤er ve nesnenin görece düzgünlü¤ünü<br />
tan›mlayan bir tamsay›<br />
olan detail (ayr›nt›) de¤erini içeren bir<br />
Hash algoritmas› olacakt›r. Detail de-<br />
¤eri, 1 kadar küçük olabilir, ama bu durumda<br />
nesne, küreden çok buruflturulmufl<br />
ka¤›t topa¤›na benzeyecektir, bu<br />
de¤er artt›kça, nesnenin kalitesi ve<br />
gerçekleme süresi de artar. Detail<br />
ö¤esinde en iyi de¤erler 4, 5 ya da<br />
6'd›r. 6'dan daha yüksek bir de¤er kullan›ld›¤›nda<br />
gerçekleme süresi, saniyelerle<br />
de¤il, ancak dakikalarla ölçülebilecek<br />
kadar uzun olur.<br />
$sphere = $world->createObject('sphere',<br />
array('r' => 85, 'detail' => 5));<br />
$sphere->setColor(new Image_3D_Color(255,<br />
255, 255));<br />
Sonuçta ortaya ç›kan görüntü flöyle<br />
olur:<br />
fiekil 7. Image_3D paketi<br />
kullan›larak oluflturulmufl<br />
3 boyutlu küre.<br />
Bu küre oluflturulurken bildirilen istatistikleri<br />
(bkz Liste 4), Liste 2 içindeki<br />
konide görülenlerle karfl›laflt›r›n.<br />
Liste 4. 5 detail de¤eriyle küre nesnesi<br />
oluflturulmas›n›n istatistikleri<br />
Image 3D<br />
Objects: 1<br />
Lights: 2<br />
Polygons: 4096<br />
Points: 2050<br />
Asl›nda, bu kürenin detail ayar›n›<br />
6'ya yükseltirseniz, çokgenlerin ve<br />
noktalar›n say›s› dört kat›na ç›kar.<br />
Simit flekli<br />
Wikipedia'ya göre, simit flekli, iki daire<br />
fleklinin (S1 x S1) ürünü olarak tan›mlanan<br />
bir kapal› yüzeydir. Geometri bilgilerinizi<br />
unuttuysan›z, bildi¤iniz bir simidi<br />
gözünüzün önüne getirin.<br />
Simit fleklinin nas›l oluflturuldu¤unu<br />
görmek için afla¤›daki kodu 3 boyutlu<br />
alan›n›za ekleyin.<br />
Liste 5. Simit flekli örne¤i<br />
$torus = $world->createObject('torus',<br />
array('inner_radius' => 90,<br />
'outer_radius' => 120,<br />
'detail_1' => 30,<br />
'detail_2' => 30));<br />
$torus->setColor(new Image_3D_Color(255,<br />
255, 255));<br />
$torus->transform($world->createMatrix('Rotation',<br />
array(-45,0,-30)));<br />
$torus->transform($world->createMatrix('Move',<br />
array(0,-20,0)));<br />
fiekil 8. Image_3D paketi<br />
kullan›larak oluflturulmufl<br />
3 boyutlu simit flekli.<br />
Bir kez daha, createObject()'in<br />
ikinci parametresine geçirilen baflka<br />
bir de¤er kümeniz var. Bu durumda, inner_radius<br />
(iç yar›çap) ve outer_radius<br />
(d›fl yar›çap), simidin iç ve d›fl yar›çaplar›n›n<br />
adlar›d›r. Detail_1 (ayr›nt› 1) ve<br />
detail_2 (ayr›nt› 2) ö¤eleri daha belirsizdir.<br />
Bu de¤erleri ayarlamay› denerseniz,<br />
detail_1 ö¤esinin bantlar› (halkaya<br />
dik olan çizgileri) ve detail_2 ö¤esinin<br />
ise fleritleri (halkan›n d›fl kenar›na<br />
paralel çizgileri) denetledi¤ini görürsünüz.<br />
Sonuçta ortaya ç›kan görüntü<br />
“fiekil 8” deki gibi olur:<br />
Metin<br />
Image_3D paketi kullan›larak metinler<br />
de üç boyutlu olarak gerçeklenebilir.<br />
Ancak, metnin stilinin belirlenmesinde<br />
pek az seçenek sunulur. Örne¤in, yaz›<br />
tipi seçemezsiniz; pakette yerleflik bulunan<br />
tek bir yaz› tipinden baflka seçene¤iniz<br />
yoktur. Yine de, Liste 6 içinde<br />
bir metin nesnesinin nas›l yarat›laca¤›<br />
gösterilir.<br />
Liste 6. Metin nesnesi örne¤i<br />
$text = $world->createObject('text',<br />
'Databases!');<br />
$text->setColor(new Image_3D_Color(255,<br />
255, 255));<br />
$text->transform($world->createMatrix('Scale',<br />
array(6, 6, 6)));<br />
$text->transform($world->createMatrix('Rotation',<br />
array(-35, 30, -15)));<br />
$text->transform($world->createMatrix('Move',<br />
array(-150, 10, 20)));<br />
Önceki örneklerdeki createObject()<br />
ö¤esinin ikinci parametresine geçirilen<br />
dizilimin yerine, yaln›zca görüntülenecek<br />
olan metni sa¤laman›z yeterlidir.<br />
‹nanmas› zor ama, PHP e¤itici yaz›-<br />
s›n›n ortas›na geldik ve pek çok PHP<br />
e¤itici yaz›s›n›n konusu olan ayn› anda<br />
her yerde bulunan sistemlerden henüz<br />
söz edilmedi. Bu henüz ad› geçmemifl<br />
olan sistemlere iliflkin 3 boyutlu bir<br />
gösterim afla¤›da verilmifltir:<br />
fiekil 9. Image_3D paketi<br />
kullan›larak oluflturulmufl<br />
3 boyutlu metin.<br />
3D Studio Max<br />
fiimdiye dek gördü¤ümüz 3 boyutlu<br />
görüntü oluflturmakta kullan›lan araçlar<br />
temel düzeydeydi, üstelik, s›f›rdan<br />
görüntü oluflturarak yapabilecekleriniz<br />
de s›n›rl›d›r. Önceden yap›lm›fl 3D<br />
Studio Max dosyalar›n› içe aktarma<br />
yetene¤i (bkz. Liste 7), heyecan verici<br />
olas›l›klar sunar.<br />
HABER LINUX 55