Ну, чтобы «спроецировать» сетку на поверхность другой сетки, вам нужно сделать лучевое вещание снаружи по направлению к центру эллипсоида.Raycaster может дать вам положение пересечения.Предполагая, что у вас эллипсоид расположен в (0, 0, 0)
, вы можете сделать что-то вроде этого:
https://threejs.org/docs/#api/en/core/Raycaster.set
// Vector with desired outer position
var startPoint = new Vector3(10, 5, 0);
// Normalized vector pointing toward center of ellipsoid
// (basically in the opposite direction of startPoint)
var endDirection = new Vector3(-10, -5, 0).normalize();
raycaster.set(startPoint, endDirection);
var intersects = raycaster.intersectObjects( ellipsoid );
console.log(intersects);
Вы увидите, что переменная intersects
будет иметь объект этого формата с результирующей (x, y, z) точкой перехвата.