Javascript 如何在网格内绘制点?
我有多个网格,希望在六边形[0]中包含的随机部分中添加一个点。我怎么做Javascript 如何在网格内绘制点?,javascript,three.js,Javascript,Three.js,我有多个网格,希望在六边形[0]中包含的随机部分中添加一个点。我怎么做 var Hexagon=new Array(); Hexagon[0] = new THREE.Mesh( HexagonExtrude[0],material[0] ); Hexagon[1] = new THREE.Mesh( HexagonExtrude[1],material[1] ); Hexagon[2] = new THREE.Mesh( HexagonExtrude[2],material[2] ); H
var Hexagon=new Array();
Hexagon[0] = new THREE.Mesh( HexagonExtrude[0],material[0] );
Hexagon[1] = new THREE.Mesh( HexagonExtrude[1],material[1] );
Hexagon[2] = new THREE.Mesh( HexagonExtrude[2],material[2] );
Hexagon[3] = new THREE.Mesh( HexagonExtrude[3],material[3] );
Hexagon[4] = new THREE.Mesh( HexagonExtrude[4],material[4] );
Hexagon[5] = new THREE.Mesh( HexagonExtrude[5],material[5] );
Hexagon[6] = new THREE.Mesh( HexagonExtrude[6],material[6] );
如果网格的形状未知(它甚至是闭合的吗?),则必须执行一些奇特的操作,如使用有符号距离场、体素化,或根据@gaitat建议的边界框拾取点。示例使用长方体和球体的原因是这些形状具有非常好的行为和简单的算术特性。如果你想做一些更有趣的事情,比如在一个随机形状中选择随机点,那么。。。那要难多了
另一个你可能会考虑的方法是有一个不可见的粒子发射区,这是你的对象的一部分。比如说,你的物体的形状可能像游戏中的怪物,但里面的粒子只来自复杂变形网格中的几个球形区域。不是直接从网格本身开始的。
您尝试过什么?你知道你的对象,你知道它们的边界(bbox,bsphere),那么问题是什么呢?@gaitat我有一些想法,但这与将点放在网格中的随机点不同。我需要一些代码,但你的理论完善了该怎么做。谢谢。你的问题太模糊了,没有这么准确的答案,对不起!