如何在网格内绘制一个点
How to draw a point inside a mesh?
我有多个网格,并希望在六边形[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] );
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] );
http://jsfiddle.net/fznore2c/如果网格是未知形状(它甚至是封闭的吗?),那么你要么必须做一些花哨的事情,比如使用带符号距离字段,体素化,或者根据@gaitat建议的边界框选择一个点。样本使用方框和球体的原因是因为这些形状具有非常良好的、简单的算术性质。如果你想做一些更花哨的事情,比如在一个随机的形状中选择随机的点,嗯…那就难多了!
你可以考虑的另一种方法是将不可见的粒子发射器区域作为对象的一部分。你的对象的形状可能像游戏中的怪物,但它内部的粒子只来自复杂的、变形的网格中的几个球形区域。
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 有没有一个javascript图形绘制库可以进行气球树布局
- 只有一个图像被绘制到画布上
- 从 Ol3 中的绘制交互中删除最后一个点
- 使用 jQuery animate 时绘制一个又一个对象的线条
- 如何在一个适用于HTML5的TeeChart中绘制堆叠和普通系列
- 单击鼠标在画布上绘制一个实心圆
- FLOT只绘制一个值,或者没有绘制整个图形
- 如何在画布上绘制一个简单的五角大楼
- 用一个加载项绘制图像阵列
- 绘制一个没有边框的空心圆
- 从带有循环的数组中一个接一个地在画布上绘制形状
- 一个很好的方法来抵消所有绘制到画布上的0.5像素
- 将一个画布绘制到另一个不起作用的画布上
- 在画布上绘制另一个图像
- 如何在D3 Javascript中绘制一个简单的力导向图
- 在鼠标移动时绘制一个矩形,并使用 kineticjs 在鼠标向上选择该矩形内的所有形状
- 在 Openlayer3 中只允许一个绘制功能
- 在主动画循环中执行另一个绘制循环,持续5秒
- 是否有一种方法来确定一个给定的点(宽,长)是否在一个绘制的多边形内