如何确定多面体是否凸出?

时间:2015-05-21 17:19:39

标签: c# convex polyhedra

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

我首先检查欧拉特征是否为2.我还检查每个面都是凸面的。但是,这仍然没有抓住很多案例。

2 个答案:

答案 0 :(得分:5)

检查出来:http://liam.flookes.com/cs/geo/

基本上:

  • 在多面体中选择一个点
  • 从该点向每张脸发送一条光线
  • 确保光线仅与所选面部相交

答案 1 :(得分:4)

我有另一个想法:对于每张脸,检查所有其他顶点是否位于该脸的同一侧。

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

算法应该都有效,但计算时间可能不同。