Самый простой способ определить, где плоскость пересекает углы усеченного конуса, - это использовать 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