Я создал TubeBufferGeometry.Код следующий:
var curve = new THREE.CatmullRomCurve3( pointArray, false, "centripetal");
var geometry = new THREE.TubeBufferGeometry( curve, pointArray.length, tubeRadius, radiusSegments, closed );
Чтобы получить интересующую точку, я использовал Raycaster.intersectObject (), я могу получить следующие результаты.
расстояние - расстояние междуначало луча и точка пересечения
точка - точка пересечения, в мировых координатах
face - пересеченное лицо
faceIndex - индекс пересеченного лица
object - пересеченный объект
uv - координаты U, V в точке пересечения
Теперь я могу получить положение пересеченной точки в TubeBufferGeometry при перемещении мыши.
Как мне найти ближайшую точку в PointArray к пересеченной точке?
Должен ли я преобразовать координацию пересеченной точки в мировой вектор?
Большое спасибо.