0
我正在拍攝全景。我想用光標移動飛機。當我移動鼠標時,平面必須是鼠標座標。我想採用平面三維座標(x,y,z),特別是z座標。我嘗試下面的代碼。但它不能正常工作。屏幕上的鼠標和平面不是相同的座標。我該怎麼辦?如何在flex papervision3d上獲得鼠標z座標?
public class RayTracer
{
public static function getIntersection(viewport:Viewport3D, camera:CameraObject3D, normal:Array):Number3D
{
var plane3D:Plane3D=new Plane3D();
plane3D.setNormalAndPoint(new Number3D(0, 1, 0), new Number3D(0, 0, 0));
var cameraPosition:Number3D=new Number3D(camera.x, camera.y, camera.z);
var ray:Number3D=camera.unproject(viewport.containerSprite.mouseX, viewport.containerSprite.mouseY);
ray=Number3D.add(ray, cameraPosition);
var intersect:Number3D=plane3D.getIntersectionLineNumbers(cameraPosition, ray);
return intersect;
}
}
有一個Mouse3D對象,但我不知道如何使用它來解決這個問題? – 2011-03-17 13:10:24
您是否嘗試過點擊事件檢查hitTestPoint? http://papervision3d.googlecode.com/svn/trunk/as3/trunk/docs/org/papervision3d/objects/DisplayObject3D.html#hitTestPoint() – robertp 2011-03-17 15:28:55