You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Liste 10. Parametreleri belirlenmifl bir sarmal yüzey<br />
$map = $world->createObject('map');<br />
$scale = 120;<br />
$detail = 30;<br />
$levels = 6;<br />
$increment = 1 / $detail;<br />
for ($s = 0; $s setColor(new Image_3D_Color(255, 255, 255));<br />
$map->transform($world->createMatrix('Rotation', array(-50, 0, 15)));<br />
$map->transform($world->createMatrix('Move', array(50, -220, 0)));<br />
Liste 11. Noktalar›n tan›mlanmas›<br />
new Image_3D_Point( ($r * cos($t)),<br />
($r * sin($t)),<br />
(sin(4 * pi() * $r))<br />
);<br />
Liste 12. 3 boyutlu ortas› delik bir kek kal›b› flekli<br />
$map = $world->createObject('map');<br />
$scale = 130;<br />
$detail = 35;<br />
$increment = 1 / $detail;<br />
oluflturmak üzere r ve t parametrelerini<br />
de¤ifltiren iki döngü içine saracaks›-<br />
n›z. Liste 12'de gösterildi¤i gibi, her X-<br />
, Y- ve Z koordinat› bir $scale de¤eriyle<br />
çarp›lacakt›r.<br />
Sonuçta ortaya ç›kan görüntü<br />
“fiekil 14”deki gibi olur:<br />
// x<br />
// y<br />
// z<br />
for ($r = 0; $r setColor(new Image_3D_Color(255, 255, 255));<br />
$map->transform($world->createMatrix('Rotation', array(-45, 0, -15)));<br />
Ek ç›kt› sürücüleri<br />
fiimdiye kadar yaratt›¤›n›z tüm görüntüler<br />
GD sürücüsünü kullan›yordu. Bu<br />
sürücünün PNG görüntüleri oluflturdu-<br />
fiekil 14. Image_3D<br />
paketindeki efllem<br />
nesnesi kullan›larak<br />
gelifltirilen parametrik<br />
ifllevden oluflan 3<br />
boyutlu yüzey.<br />
¤unu gördünüz. Ancak kullanabilece¤iniz<br />
dört ek sürücü daha vard›r: SVG,<br />
SVGRotate, ZBuffer ve ASCII.<br />
SVG<br />
SVG (Scalable Vector Graphics; Ölçeklenebilir<br />
Vektör Grafi¤i) dosya biçimi,<br />
2 boyutlu görüntüler oluflturan vektörlerin<br />
bir XML tan›m›d›r. W3C, bu biçimi<br />
2001 y›l›nda standartlaflt›rm›flt›r, ancak<br />
bu biçimin Web üzerindeki kullan›-<br />
m›, SVG dosyalar›n› görüntüleyebilen<br />
taray›c›lar›n kullan›labilir hale gelmesiyle<br />
engellenmifltir. fiu anda en uygun<br />
seçenekler SVG için yerleflik destek<br />
içeren Firefox V1.5 ve Adobe SVG eklentisine<br />
sahip Internet Explorer ürünleridir.<br />
Image_3D'den SVG görüntüleri<br />
oluflturmak oldukça basittir. Yap›lmas›<br />
gereken yaln›zca Liste 1'deki son iki<br />
kod sat›r›n› afla¤›daki gibi de¤ifltirmektir:<br />
$world->createDriver('svg');<br />
$world->render(400, 400, 'object.svg');<br />
Sonuçta ortaya ç›kan görüntü dosyas›<br />
ilk yaratt›¤›n›z koniye çok benzer<br />
olmal›d›r.<br />
SVG dosyalar›n›n heyecan verici<br />
bir yönü, görüntüyü tan›mlayan XML<br />
a¤ac›n›n, JavaScript ve DOM ayr›flt›rma<br />
yordamlar› kullan›larak ifllenebilmesidir.<br />
Görüntülerin, Web sayfalar›n›<br />
ifllemek üzere dHTML kullan›r gibi ifllendi¤ini<br />
düflünün. SVGRotate sürücüsü,<br />
yaln›zca bu amaçla gerekli olan komut<br />
dosyas›n› içeren bir SVG dosyas›<br />
oluflturur.<br />
Ç›kt› sürücüsünün de¤ifltirilmesi yine<br />
son iki kod sat›r›n›n de¤ifltirilmesiyle<br />
kolay bir flekilde gerçeklefltirilebilir:<br />
$world->createDriver('svgrotate');<br />
$world->render(400, 400, 'object.svg');<br />
Sonuçta ortaya ç›kan dosya, SVG<br />
biçimini tan›yan bir taray›c›da görüntülendi¤inde,<br />
koniyi gerçek zamanl›<br />
olarak döndürmek ve ölçeklemek için<br />
58 HABER LINUX