检查点是否在自定义网格几何体内

Zar*_*doz 6 three.js

检查点是否在自定义(不规则)网格几何体内部的最简单方法是什么?

yue*_*you 5

如果您的网格物体是特写镜头。您可以使用THREE.js内置的射线投射器。示例代码为

const point = new THREE.Vector3(2,2,2) // Your point
const geometry = new THREE.BoxBufferGeometry( 5, 5, 5 )
const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } )
const mesh = new THREE.Mesh( geometry, material )
const raycaster = new THREE.Raycaster()
raycaster.set(point, new THREE.Vector3(1,1,1))
const intersects = raycaster.intersectObject(mesh)
if( intersects.length %2 === 1) { // Points is in objet
   console.log(`Point is in object`)
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/89/three.js"></script>
Run Code Online (Sandbox Code Playgroud)