2

正直なところ、以下の質問の解決策を見つけようとしました。助けてください。そして私の英語でごめんなさい:)

マップを作成し、カメラを追加し、すべての次元のカメラ コントロールを追加しました。

また、メッシュに対するカーソルの位置を取得すると、その位置は角度によって常に異なります。

jsfiddle.net のすべてのコードを表示: http://jsfiddle.net/BT3g3/

Three.js r49を使用しています。

このコードは、位置の計算のみを担当します。

function onDocumentMouseMove(event) {
    var vector = new THREE.Vector3(  ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 1);
    projector.unprojectVector( vector, camera );

    var ray = new THREE.Ray( camera.position, vector.subSelf( camera.position ).normalize() );
    var intersect = ray.intersectObject( island );  

    if ( intersect.length > 0) { // !!
        document.getElementById('z').value = intersect[0].point.z;
        document.getElementById('x').value = intersect[0].point.x;
    }
}

私はインターネットを閲覧していて、カーソル位置が地図上でキャッチされている記事に出くわしましたが、このメソッドを自分のプロジェクトに移動できませんでした:(

助けてください!

4

1 に答える 1

1

次のことを試しましたか?

mouseX = ( ( event.clientX - canvas.offsetLeft ) / canvas.clientWidth ) * 2 - 1;
mouseY = - ( ( event.clientY - canvas.offsetTop ) / canvas.clientHeight ) * 2 + 1;
于 2013-01-24T05:15:39.173 に答える