水曜日, 9月 24, 2008

sketch20080924


Actionscript3.0アニメーションを参考にしたscriptographerでの3Dのスケッチ。
flは焦点距離で、vpX、vpYは消失点(vanishing point)。
ball3D.js

//A4 size
var w = 596;
var h = 842;
var back = document.createRectangle(new Rectangle(0, 0, w, h));
back.style.fill.color = new RGBColor(0, 0, 0);
var fl = 250;
var vpX = w/2;
var vpY = h/2;
var numBalls = 1000;
function drawBall(x, y, z, rad) {
if(z > -fl) {
var scale = fl / (fl+z);
x = vpX + x * scale;
y = vpY + y * scale;
rad = rad * scale;
}
var b = document.createCircle(x, y, rad);
b.style.fill.color = new RGBColor(255, 255, 255);
b.opacity = scale * 0.7 + 0.3;
}

for(var i=0; i < numBalls; i++) {
drawBall(Math.random() * w - w/2, Math.random() * h - h/2, numBalls - i, 10);
}

0 件のコメント: