Показать сообщение отдельно
Старый 21.08.2010, 17:00
simplex вне форума Посмотреть профиль Отправить личное сообщение для simplex Найти все сообщения от simplex
  № 1  
Ответить с цитированием
simplex

Регистрация: Aug 2010
Сообщений: 1
По умолчанию Странности с координатами при одновременном использовании 2д и 3д

Господа, прошу помощи - наблюдаю странное поведение при одновременном присутствии на сцене 2д и 3д объектов при использовании функции local3DToGlobal.

Например есть 2 спрайта. На одном рисуем треугольник без использования local3DToGlobal (то есть 2д):

Код AS3:
var verts:Vector.<Number> = Vector.<Number>([0, 0, 50, 0, 0, 50]);  
 
this.graphics.clear();  
this.graphics.beginFill(0xff0000, 0.5);  
this.graphics.drawTriangles(verts);  
this.graphics.endFill();
На другом треугольник с использованием local3DToGlobal (то есть 3д):

Код AS3:
var verts:Vector.<Number> = Vector.<Number>([0, 0, 0, 50, 0, 0, 0, 50, 0]);  
var verts2d:Vector.<Number> = new Vector.<Number>();  
 
for (var i:int = 0; i < verts.length / 3; i++)  
{  
     var point:Point = this.local3DToGlobal(new Vector3D(verts[i * 3], verts[i * 3 + 1], verts[i * 3 + 2]));  
 
     verts2d.push(point.x);  
     verts2d.push(point.y);  
}  
 
this.graphics.clear();  
this.graphics.beginFill(0x00ff00, 0.5);  
this.graphics.drawTriangles(verts2d);  
this.graphics.endFill();
оба спрайта с треугольниками добавляем на спрайт-сцену и сдвигаем координаты сцены на 50 по Х и У.
При этом треугольник, нарисованный в 3д оказывается в 2 раза дальше от точки 0,0 чем 2д-треугольник,
хотя в точке 0,0 их положения совпадают и оба треугольника равны по размерам.

Возможно я туплю, но я не могу понять почему так происходит