PDA

Просмотр полной версии : bounding box в 3D


inka
10.06.2009, 17:55
Возникла проблема с определение ограничивающего прямоугольника для мувиклипа с ненулевой z-координатой. Вот код, который дает верный результат (рис А):

var m : Meat = new Meat();
addChild(m);
m.x = 100;
m.y = 100;
m.z = 100;
m.rotationY = 45;
var bb : Rectangle = m.getRect(this);
graphics.lineStyle(1, 0xFF0000);
graphics.drawRect(bb.x, bb.y, bb.width, bb.height);

http://img196.**************/img196/6331/65923946.jpg
Но если мувиклипу-контейнеру установить собственный центр проекции, то объект смещается в соответствии с новым перспективным искажением, а ограничивающий прямоугольник вычисляется п-старому (рис B).

var m : Meat = new Meat();
addChild(m);
m.x = 100;
m.y = 100;
m.z = 100;
m.rotationY = 45;
transform.perspectiveProjection = new PerspectiveProjection();
transform.perspectiveProjection.projectionCenter = new Point(0, -100);
var bb : Rectangle = m.getRect(this);
graphics.lineStyle(1, 0xFF0000);
graphics.drawRect(bb.x, bb.y, bb.width, bb.height);

Есть какие-нибудь способы корректного определения bounding box-а с недефолтным центром проекции?