[英]How do I calculate which vertice is the closest to a 3D point?
Goal: 目标:
I want to find out which vertice/vertex is the closest to the point I clicked. 我想找出哪个顶点/顶点最接近我单击的点。
Setup: 设定:
Code I already have for the click handler: 我已经拥有点击处理程序的代码:
mouse = new THREE.Vector2();
mouse.x = (event.clientX / renderer.domElement.clientWidth) * 2 - 1;
mouse.y = - (event.clientY / renderer.domElement.clientHeight) * 2 + 1;
raycaster.setFromCamera(mouse, camera);
const intersects = raycaster.intersectObject(icosahedron);
// 3D point: intersects[0].point
// Object face: intersects[0].face
Thanks! 谢谢!
Three steps: 三个步骤:
- -
vertices = [
intersects[0].face.a,
intersects[0].face.b,
intersects[0].face.c
];
vertices.forEach( function(vId,i){
vertices[i] = mesh.geometry.vertices[vId].clone();
vertices[i].l2w = mesh.localToWorld(vertices[i].clone());
vertices[i].id = vId;
vertices[i].index = i;
vertices[i].distance = vertices[i].l2w.distanceTo(intersects[0].point);
})
vertices.sort( function(a,b){
return a.distance - b.distance;
})
https://jsfiddle.net/fwnjoc31/ https://jsfiddle.net/fwnjoc31/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.