2015-05-21 140 views
5

我正在寻找一种有效的算法来确定多面体是否凸起。如何确定多面体是凸的?

我开始通过检查欧拉特征数为2。而且我还检查每个人脸上是凸的。但是,这仍然没有抓住很多案例。

回答

4

我有另外的想法:对于每一个面部核对所有的日其他顶点位于该面的​​同一侧。

可以通过计算的法线矢量的每个面(以叉积),然后从一个顶点(的面部)计算点积为每个向量到所有其他检查。标志必须相同。

的算法应该都工作,但可以在计算时间是不同的。

5

检查了这一点:http://liam.flookes.com/cs/geo/

基本上:

  • 挑多面体
  • 内的点从该点发出射线到每个面
  • 确保射线只相交的选择面对
+0

很好,谢谢。顶点的平均值是否总是在凸多面体的内部? –

+0

这一点不能随意选择,你会有误报,对吧? – Kryptos

+0

@ Charles:是的,它是凸起的身体。 @Kryptos它可以随意选择,但你必须与面的所有平面检查点P和A面之间的和弦交集。和弦P-A可以与面部B_的外侧的面B相交。 –