Показать сообщение отдельно
Старый 26.03.2009, 22:46
ВАРАН вне форума Посмотреть профиль Отправить личное сообщение для ВАРАН Найти все сообщения от ВАРАН
  № 3  
Ответить с цитированием
ВАРАН
 
Аватар для ВАРАН

Регистрация: Aug 2003
Адрес: Москва
Сообщений: 449
Отправить сообщение для ВАРАН с помощью ICQ
Я пробовал вот так. Но явно чето не то в плане трегонометрии. И при обратном вращении артефактоф много:

Код AS1/AS2:
function rotateYto(targed, a) {
 
	var newAngle:Number = a*rad;
	var sin = Math.sin(newAngle);
	var cos = Math.cos(newAngle);
	var x = targed.vertex[0].x;
	var z = targed.vertex[0].z;
	var R = Math.sqrt(x*x+z*z);
	var _b = a*rad;
	for (var i = 0; i<4; i++) {
		x = Math.cos(_b)*R;
		z = Math.sqrt(R*R-x*x);
		if (targed.vertex[i].x<0) {
			x = 0-x;
			z = 0-z;
		}
		targed.vertex[i].z = z;
		targed.vertex[i].x = x;
	}
 
	render(rektangl);
}


Добавлено через 65 часов 58 минут
Поворот точек на заданный угол.
вот как получилось:

Код AS1/AS2:
function rotateYto(targed, a) {
	var R = targed.Width/2;
	var _b = a*rad;
 
	for (var i = 0; i<4; i++) {
		x = Math.cos(_b)*R;
		z = Math.sin(_b)*R;
		if (targed.vertex[i].x<0) {
			x = 0-x;
			z = 0-z;
		}
		targed.vertex[i].z = z;
		targed.vertex[i].x = x;
	}
	render(rektangl);
}
__________________
Он манэ падмэ ХУМ!