"dead center" в PV3d
Доброе время суток, господа!
1) Дело вот в чем.... есть вот такой простой код:
Код AS3:
package
{
import flash.display.*;
import flash.events.Event;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
public class MyPlane extends Sprite
{
private var cam:Camera3D;
private var sc:Scene3D;
private var vp:Viewport3D;
private var bre:BasicRenderEngine;
private var plane:Array = new Array();
public function MyPlane()
{
setupPV3D();
addPlane();
addEventListener(Event.ENTER_FRAME, loop);
}
private function setupPV3D():void
{
sc = new Scene3D();
cam = new Camera3D();
cam.z = -300;
vp = new Viewport3D();
bre = new BasicRenderEngine();
addChild(vp);
}
public function addPlane():void
{
plane[1] = new Plane(null, 300, 300, 10, 10);
plane[1].x = 0;
plane[1].y = 0;
plane[1].z = 0;
sc.addChild(planes[1]);
}
private function loop(e:Event):void
{
plane[1].rotationX = -((mouseY - stage.stageWidth * 0.5)* 0.15);
plane[1].rotationY = -((mouseX - stage.stageHeight * 0.5)* 0.15);
bre.renderScene(sc, cam, vp);
}
}
}
Суть проблемы такова: обьект plane[1], появившийся на сцене, реагирует на изменение координаты мыши, изменяя угол наклона своей плоскости вслед за ней. По идее, если координаты мыши совпадают с координатами центра сцены, то плоскость листа параллельна плоскости экрана. Но на практике все иначе - если подводим мышь к центру сцены (или к центру листа), то происходит наклон плоскости листа, а та самая точка при которой лист параллелен плоскости экрана лежит на краю листа. Надеюсь доходчиво пояснил. Как побороть такой недуг?
2)Не мог бы кто-нибудь пояснить назначение класса Viewport3D в PV3D?
|