我目前正在开发一个基于Java的Android项目。我正在使用OpenGL-ES 3.0。
在我的项目中,我有一个大而复杂的3D对象(人头),有100000个顶点和400000多个三角形。对象的顶点存储在一个数组中。物体可以相对于其质心旋转。
我正在尝试实现一个功能,用户在头上选择一组点,并绘制一条连接每个点的线(类似于"连接点")。换句话说,用户选择头部上的点(p1,p2,p3 ...... pn),并且所选择的点将改变颜色。然后,在选择最后一个点(pn)之后,算法运行以计算位于每个点之间的所有顶点(例如,p1和p2)。那些顶点将改变颜色,因此用户在他们选择的每个点之间看到一条线(或接近一条线)。
我已经实现了一种允许用户选择点的方法,并通过更改颜色来查看这些点。我遇到的困难是在点之间实现线。
我目前必须绘制这些线的唯一想法是使用我已编程的代码。我有允许用户移动椭球的代码(他们可以选择尺寸并旋转椭球)。他们将椭球移动到头部的位置并运行算法,计算位于椭球体积内的头部的所有点,并更改这些点。颜色。
我的想法是取p1和p2的中点,将其设置为椭圆体的中心,并旋转/拉伸椭圆体尺寸,使一个轴从p1运行到p2,另一个轴是一个大值。基本上,它看起来像是一个扁平的球状形状(像红血球一样)并将球的一端放在p1上,另一端放在p2上。然后我可以运行我已经编码的算法来找到椭圆体内的所有点。然后我可以更改这些点的颜色,用户可以看到他们选择的每个点之间的一条线。
有没有人对这种技术有任何批评?还有其他方法可以实现我想要的结果吗?
答案 0 :(得分:0)
检查点是否接触或位于椭球内: