나는 파노라마 장면에서 일하고있다. 그리고 커서로 비행기를 움직이고 싶습니다. 마우스를 움직일 때, 비행기는 마우스 좌표 여야합니다. 그리고 저는 비행기의 3D 좌표 (x, y, z)를 expecially z 좌표로 가져 가고 싶습니다. 나는 아래의 코드를 시도한다. 하지만 제대로 작동하지 않습니다. 마우스와 평면은 화면상의 좌표가 동일하지 않습니다. 내가 어떻게 할 수 있니?플렉스 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 개체가 있지만이 문제에 대해 어떻게 사용할 수 있는지 잘 모릅니다. –
클릭 이벤트에서 hitTestPoint를 확인해 보셨습니까? http://papervision3d.googlecode.com/svn/trunk/as3/trunk/docs/org/papervision3d/objects/DisplayObject3D.html#hitTestPoint() – robertp