Тема: ЗАЦЕНИТЕ
Показать сообщение отдельно
Старый 27.11.2003, 00:41
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 1  
opex
 
Аватар для opex

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

ЗАЦЕНИТЕ

Код:
var PositionCentreX = 250;
var PositionCentreY = 250;
var Radius = 150;
var Radius2 = 140;
var AmountSegments = 32;
var Thickness = 50;
var s = 200;
var pX;
var pY;
var P2 = 2*Math.PI;
var Rad = Math.PI/180;
TopsX1 = new Array();
TopsY1 = new Array();
TopsZ1 = new Array();
TopsX2 = new Array();
TopsY2 = new Array();
TopsZ2 = new Array();
for (Znak=1; Znak>-2; Znak -= 2) {
	for (i=0; i<P2; i += 2*Math.PI/AmountSegments) {
		TopsX1.push(0+Radius*Math.cos(i));
		TopsY1.push(0-Radius*Math.sin(i));
		TopsZ1.push(Znak*Thickness/2);
	}
}
for (Znak=1; Znak>-2; Znak -= 2) {
	for (i=0; i<P2; i += 2*Math.PI/AmountSegments) {
		TopsX2.push(0+Radius2*Math.cos(i));
		TopsY2.push(0-Radius2*Math.sin(i));
		TopsZ2.push(Znak*Thickness/2);
	}
}
_root.onEnterFrame = function() {
	pX = -(PositionCentreX-_ymouse)*0.005;
	pY = (PositionCentreY-_xmouse)*0.005;
	_root.clear();
	for (i=0; i<=AmountSegments*2; i++) {
		cosX = Math.cos(pX*Rad);
		sinX = Math.sin(pX*Rad);
		cosY = Math.cos(pY*Rad);
		sinY = Math.sin(pY*Rad);
		PowY = TopsY1[i]*cosX-TopsZ1[i]*sinX;
		PowX = TopsX1[i]*cosY+(TopsY1[i]*sinX+TopsZ1[i]*cosX)*sinY;
		PowZ = -TopsX1[i]*sinY+(TopsY1[i]*sinX+TopsZ1[i]*cosX)*cosY;
		TopsX1[i] = PowX;
		TopsY1[i] = PowY;
		TopsZ1[i] = PowZ;
		PowY = TopsY2[i]*cosX-TopsZ2[i]*sinX;
		PowX = TopsX2[i]*cosY+(TopsY2[i]*sinX+TopsZ2[i]*cosX)*sinY;
		PowZ = -TopsX2[i]*sinY+(TopsY2[i]*sinX+TopsZ2[i]*cosX)*cosY;
		TopsX2[i] = PowX;
		TopsY2[i] = PowY;
		TopsZ2[i] = PowZ;
	}
	this.lineStyle(0, 0xffffff, 100);
	this.moveTo(PositionCentreX+TopsX1[0]*(s/(s+TopsZ1[0])), PositionCentreY+TopsY1[0]*(s/(s+TopsZ1[0])));
	for (i=1; i<AmountSegments; i++) {
		this.lineTo(PositionCentreX+TopsX1[i]*(s/(s+TopsZ1[i])), PositionCentreY+TopsY1[i]*(s/(s+TopsZ1[i])));
	}
	this.lineTo(PositionCentreX+TopsX1[0]*(s/(s+TopsZ1[0])), PositionCentreY+TopsY1[0]*(s/(s+TopsZ1[0])));
	this.moveTo(PositionCentreX+TopsX1[AmountSegments]*(s/(s+TopsZ1[AmountSegments])), PositionCentreY+TopsY1[AmountSegments]*(s/(s+TopsZ1[AmountSegments])));
	for (i=1; i<AmountSegments; i++) {
		this.lineTo(PositionCentreX+TopsX1[i+AmountSegments]*(s/(s+TopsZ1[i+AmountSegments])), PositionCentreY+TopsY1[i+AmountSegments]*(s/(s+TopsZ1[i+AmountSegments])));
	}
	this.lineTo(PositionCentreX+TopsX1[AmountSegments]*(s/(s+TopsZ1[AmountSegments])), PositionCentreY+TopsY1[AmountSegments]*(s/(s+TopsZ1[AmountSegments])));
	for (i=0; i<AmountSegments; i++) {
		this.moveTo(PositionCentreX+TopsX1[i]*(s/(s+TopsZ1[i])), PositionCentreY+TopsY1[i]*(s/(s+TopsZ1[i])));
		this.lineTo(PositionCentreX+TopsX1[i+AmountSegments]*(s/(s+TopsZ1[i+AmountSegments])), PositionCentreY+TopsY1[i+AmountSegments]*(s/(s+TopsZ1[i+AmountSegments])));
	}
	this.moveTo(PositionCentreX+TopsX2[0]*(s/(s+TopsZ2[0])), PositionCentreY+TopsY2[0]*(s/(s+TopsZ2[0])));
	for (i=1; i<AmountSegments; i++) {
		this.lineTo(PositionCentreX+TopsX2[i]*(s/(s+TopsZ2[i])), PositionCentreY+TopsY2[i]*(s/(s+TopsZ2[i])));
	}
	this.lineTo(PositionCentreX+TopsX2[0]*(s/(s+TopsZ2[0])), PositionCentreY+TopsY2[0]*(s/(s+TopsZ2[0])));
	this.moveTo(PositionCentreX+TopsX2[AmountSegments]*(s/(s+TopsZ2[AmountSegments])), PositionCentreY+TopsY2[AmountSegments]*(s/(s+TopsZ2[AmountSegments])));
	for (i=1; i<AmountSegments; i++) {
		this.lineTo(PositionCentreX+TopsX2[i+AmountSegments]*(s/(s+TopsZ2[i+AmountSegments])), PositionCentreY+TopsY2[i+AmountSegments]*(s/(s+TopsZ2[i+AmountSegments])));
	}
	this.lineTo(PositionCentreX+TopsX2[AmountSegments]*(s/(s+TopsZ2[AmountSegments])), PositionCentreY+TopsY2[AmountSegments]*(s/(s+TopsZ2[AmountSegments])));
	for (i=0; i<AmountSegments; i++) {
		this.moveTo(PositionCentreX+TopsX2[i]*(s/(s+TopsZ2[i])), PositionCentreY+TopsY2[i]*(s/(s+TopsZ2[i])));
		this.lineTo(PositionCentreX+TopsX2[i+AmountSegments]*(s/(s+TopsZ2[i+AmountSegments])), PositionCentreY+TopsY2[i+AmountSegments]*(s/(s+TopsZ2[i+AmountSegments])));
	}
	for (i=0; i<AmountSegments; i++) {
		this.moveTo(PositionCentreX+TopsX1[i]*(s/(s+TopsZ1[i])), PositionCentreY+TopsY1[i]*(s/(s+TopsZ1[i])));
		this.lineTo(PositionCentreX+TopsX2[i]*(s/(s+TopsZ2[i])), PositionCentreY+TopsY2[i]*(s/(s+TopsZ2[i])));
		this.moveTo(PositionCentreX+TopsX1[i+AmountSegments]*(s/(s+TopsZ1[i+AmountSegments])), PositionCentreY+TopsY1[i+AmountSegments]*(s/(s+TopsZ1[i+AmountSegments])));
		this.lineTo(PositionCentreX+TopsX2[i+AmountSegments]*(s/(s+TopsZ2[i+AmountSegments])), PositionCentreY+TopsY2[i+AmountSegments]*(s/(s+TopsZ2[i+AmountSegments])));
	}
};
__________________
Бойтесь китайцев, компы приносящих!