Как я могу получить координаты мыши Z на Flex Papervision3D? - PullRequest
0 голосов
/ 17 марта 2011

Я работаю на панорамной сцене. И я хочу переместить самолет с курсором. Когда я двигаю мышь, плоскость должна быть координатами мыши. И я хочу взять трехмерные координаты плоскости (x, y, z), особенно 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;
    }
}

Ответы [ 2 ]

0 голосов
/ 17 марта 2011

Нет, я попробую.Я пытаюсь объект Mouse3d и запустить ниже код:

private function onEnterFrame(param1:Event=null):void{
renderer.renderScene(scene, camera, viewport);
var mouse3D:Mouse3D;
viewport.interactive=true;
Mouse3D.enabled=true;
mouse3D=viewport.interactiveSceneManager.mouse3D;
trace(mouse3D.x, mouse3D.y, mouse3D.z)

}

Но координаты mouse3D всегда (0,0,0).Я не знаю почему.

0 голосов
/ 17 марта 2011

Насколько я знаю, Z-координаты мыши отсутствуют даже в PV3d.

...