Показать сообщение отдельно
Старый 30.03.2011, 14:49
ivan.renzhin вне форума Посмотреть профиль Отправить личное сообщение для ivan.renzhin Найти все сообщения от ivan.renzhin
  № 3  
Ответить с цитированием
ivan.renzhin

Регистрация: Mar 2011
Сообщений: 2
Это логично, но дело как раз все в этом надо вычислить угол поворота 3д матрицы, направление "камеры" можно узнать перемножив вектора точек, так?

Добавлено через 1 час 43 минуты
да здравствует openGL

Код AS3:
private function lookAt(eye:Vector3D, look:Vector3D, up:Vector3D):Matrix3D {
	var n:Vector3D = eye.subtract(look);
	var u:Vector3D = up.crossProduct(n);
	var v:Vector3D = n.crossProduct(u);
 
	n.normalize();
	u.normalize();
	v.normalize();
 
	var d:Vector3D = new Vector3D(-eye.dotProduct(u), -eye.dotProduct(v), -eye.dotProduct(n));
 
	var matrixArr:Array = [
		u.x, u.y, u.z, d.x, 
		v.x, v.y, v.z, d.y, 
		n.x, n.y, n.z, d.z, 
		0,   0,   0,   1
	];
 
	var matrixVector:Vector.<Number> = new Vector.<Number>;
	matrixVector.push.apply(matrixVector, matrixArr);
 
	var m:Matrix3D = new Matrix3D(matrixVector);
	m.transpose();
	return m;
}