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 9. Üç noktal› y›ld›z oluflturulmas›<br />

$polygons = array();<br />

// Front face<br />

$polygons[] = array(<br />

array(0, -120, 0), array(-18, -12, 0),<br />

array(-86, 48, 0), array(0, 18, 0),<br />

array(86, 48, 0), array(18, -12, 0)<br />

);<br />

// Back face<br />

$polygons[] = array(<br />

array(0, -120, 60), array(-18, -12, 60),<br />

array(-86, 48, 60), array(0, 18, 60),<br />

array(86, 48, 60), array(18, -12, 60)<br />

);<br />

// 3 Sides<br />

$polygons[] = array(<br />

array(0, -120, 0), array(-18, -12, 0),<br />

array(-86, 48, 0), array(-86, 48, 60),<br />

array(-18, -12, 60),array(0, -120, 60)<br />

);<br />

$polygons[] = array(<br />

array(-86, 48, 0), array(0, 18, 0),<br />

array(86, 48, 0), array(86, 48, 60),<br />

array(0, 18, 60), array(-86, 48, 60)<br />

);<br />

$polygons[] = array(<br />

array(86, 48, 0), array(18, -12, 0),<br />

array(0, -120, 0), array(0, -120, 60),<br />

array(18, -12, 60),array(86, 48, 60)<br />

);<br />

foreach ($polygons as $poly) {<br />

$points = array();<br />

foreach ($poly as $set) {<br />

$points[] = new Image_3D_Point($set[0], $set[1], $set[2]);<br />

}<br />

$p = $world->createObject('polygon', $points);<br />

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

}<br />

$world->transform($world->createMatrix('Rotation',<br />

array(0, -25, -15)));<br />

de devreye girer. Hiç Calculus dersi almad›ysan›z<br />

ya da bu konudaki bilgilerinizi<br />

unuttuysan›z, bu yaz›da, körelmifl<br />

becerilerinizi bilemeye çal›flmayaca-<br />

¤›z. Ancak, afla¤›daki modellerde neler<br />

olup bitti¤ine iliflkin temel bir fikir vermeye<br />

çal›flaca¤›z.<br />

Mathematica yaz›l›m›yla yüzeyleri<br />

ve k›vr›mlar› tasarlama deneyiminiz<br />

varsa, s›radaki iki örnek size tan›d›k<br />

gelecektir.<br />

Helezon<br />

Bu iki listenin ilki yükselen bir sarmald›r.<br />

Yüzeydeki her bir noktan›n, afla¤›-<br />

daki parametrik fonksiyondan türeyen<br />

X, Y ve Z koordinatlar› vard›r:<br />

f[s,t] = {s * cos(2 t), s* sin(2 t),<br />

t}<br />

Bu yüzeyi yaratmak için, önce alan›n›zda<br />

yeni bir "efllem" nesnesi yaratacaks›n›z.<br />

$map = $world->createObject('map');<br />

Efllem, yukar›daki özel çokgende<br />

gördü¤ünüz gibi 3 boyutlu bir yüzey<br />

oluflturmak için Image_3D_Point nesnelerinin<br />

dizilimini al›r. Bu noktalar›n<br />

her biri yukar›daki ifllevinize göre tan›mlanabilir:<br />

new Image_3D_Point( ($s * cos(2 *<br />

pi() * $t)),<br />

($s * sin(2 * pi() * $t)),<br />

($t) );<br />

s ve t parametrelerini s›ras›yla 0-1<br />

ve 0-6 aral›klar›nda de¤ifltireceksiniz.<br />

Yüzeye uygun bir boyut vermek için,<br />

her bir koordinat› $scale ayar›na atayaca¤›n›z<br />

istedi¤iniz bir de¤erle çarpacaks›n›z.<br />

Liste 10 içinde, efllem nesnesinin<br />

nas›l oluflturuldu¤u gösterilir ve di¤er<br />

örneklerde de oldu¤u gibi, nesnenin<br />

son halinin rengini, döndürmesini ve<br />

konumunu siz belirlersiniz<br />

fiekil 13 içinde sonuçta ortaya ç›-<br />

kan görüntü gösterilir. Helezonun ayr›nt›,<br />

ölçek ve yükseklik düzeyleri<br />

$scale, $detail ve $levels de¤iflkenleriyle<br />

belirlenir.<br />

fiekil 13. Image_3D<br />

paketinin efllem<br />

nesnesi kullan›larak<br />

oluflturulmufl helezon.<br />

Ortas› delik kek kal›b› flekli<br />

Stokes teoreminin bir uygulamas› olan<br />

ikinci yüzey integraliniz de ilginç bir<br />

sonuç verir. Bu yüzeyi, Z ile ifade edilen<br />

yüksekli¤i de¤iflken ve X ve Y düzlemlerinin<br />

bafllang›ç noktas›ndan her<br />

yöne yay›lan bir sinüs dalgas›n›n ürünü<br />

olarak düflünebilirsiniz.<br />

Calculus terimlerini bir yana b›rak›rsak,<br />

bu fleklin ortas› delik bir kek kal›b›na<br />

benzedi¤ini söyleyebiliriz.<br />

Bu alan, afla¤›daki parametrik iflleve<br />

göre tan›mlanacakt›r:<br />

f[r,t] = {r * cos(t), r * sin(t), sin(4 <br />

r)}<br />

Yine, bu yüzey için efllem nesnesine<br />

eklenecek noktalar› iflaretleyeceksiniz.<br />

Her nokta Liste 11'de tan›mlan›r.<br />

Her bir noktay›, düzgün bir yüzey<br />

HABER LINUX 57

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

Saved successfully!

Ooh no, something went wrong!