簡體   English   中英

使用正交相機從鼠標位置獲取Three.js世界坐標

[英]Three.js world coordinates from mouse position with Orthographic camera

我知道這個問題已經被問過很多次,並且已經回答了,但是我目前對所遵循的任何答案都沒有運氣(主要是這個Mouse / Canvas X,Y到Three.js World X,Y,Z ) 。

我已經完成了對象選擇,並且正在使用的代碼如下

onMouseMove:function(event)
{
    event.preventDefault();

    var scope       =   Game.GSThree,
        $container  =   $(scope.container.element),
        width       =   $container.width(),
        height      =   $container.height(),
        vector,
        ray,
        intersects;

    scope.mouse.x   =   (event.clientX - scope.container.padding.left) / width * 2 - 1;
    scope.mouse.y   =   - (event.clientY / height) * 2 + 1;
    scope.mouse.z   =   0.5;
    vector          =   new THREE.Vector3(scope.mouse.x , scope.mouse.y , scope.mouse.z);
    ray             =   scope.projector.pickingRay(vector.clone() , scope.camera);
    intersects      =   ray.intersectObjects(scope.tiles.children);

    if(intersects.length)
    {
        var hovered = intersects[0].object;
        scope.selectObject(hovered);
    }
}

這可以正常工作,但實際上我還需要知道當前鼠標位置的確切世界坐標。 我不確定我嘗試過的解決方案是否適用於正交攝影機,這就是我正在使用的解決方案。 如果我登錄scope.mouse.xvector.x它們都沒有給出世界坐標,則ray發現對象完全正常,但是我不知道如何獲取世界上ray的當前坐標。

我認為您正在尋找的是:

相交[0] .point;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM