Обоснование выбора дизайна, вызывающего длительный запуск языков JVM / CLR?

Самый простой способ определить, где плоскость пересекает углы усеченного конуса, - это использовать Raycaster, чтобы сбрасывать луч с камеры по каждому краю (углу) усеченного конуса и видеть, где луч пересекает плоскость.

var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();

...

document.body.addEventListener("click", function() {

    mouse.x = + 1; // use + 1 and - 1
    mouse.y = + 1; // use + 1 and - 1

    raycaster.setFromCamera( mouse, camera );

    var intersects = raycaster.intersectObjects( [ plane ] ); 

    if ( intersects.length > 0 ) {

        var geometry = new THREE.SphereGeometry( 10, 12, 6 );
        var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
        var mesh = new THREE.Mesh( geometry, material );
        mesh.position.copy( intersects[ 0 ].point );
        scene.add( mesh );

    }

});

скрипт: http://jsfiddle.net/qawkvm0s/3/

three.js r.88

20
задан Community 23 May 2017 в 12:09
поделиться