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-а с недефолтным центром проекции?
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-а с недефолтным центром проекции?