Тема: floodfill3d
Показать сообщение отдельно
Старый 18.11.2003, 14:48
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 1  
opex
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
По умолчанию floodfill3d

как залить стороны куба чтобы цвета переливались в зовисимости от поворота

Код:
x = [50, 50, 50, 50, -50, -50, -50, -50];
y = [-50, 50, 50, -50, -50, 50, 50, -50];
z = [50, 50, -50, -50, -50, -50, 50, 50];
o = {a:0, b:1, c:2, d:3, e:0, f:7, g:6, h:5, i:4, j:7, k:6, l:1, m:2, n:5, o:4, p:3};
var _x = 100, _y = 100, s = 200, r = Math.PI/180, pX = 1, pY = -2;
onEnterFrame = function () {
	clear();
	for (i=0; i<8; i++) {
		ky = y[i]*Math.cos(pX*r)-z[i]*Math.sin(pX*r);
		kx = x[i]*Math.cos(pY*r)+(y[i]*Math.sin(pX*r)+z[i]*Math.cos(pX*r))*Math.sin(pY*r);
		kz = -x[i]*Math.sin(pY*r)+(y[i]*Math.sin(pX*r)+z[i]*Math.cos(pX*r))*Math.cos(pY*r);
		x[i] = kx;
		z[i] = kz;
		y[i] = ky;
	}
	lineStyle(0, 0xf, s);
	moveTo(x[0]*(s/(s+z[0])), y[0]*(s/(s+z[0])));
	for (name in o) {
		lineTo(x[o[name]]*(s/(s+z[o[name]])), y[o[name]]*(s/(s+z[o[name]])));
	}
};
__________________
Бойтесь китайцев, компы приносящих!