假设四个4D点[1 / 3,1 / 6,1 / 3,1 / 6],[0,0,1 / 2,1],[0,0,0,1],给出了[0,0,2 / 3,1 / 3]。如何在Python中计算凸包的以下属性?
1)极值点集
2)将凸包投影到不同的坐标轴上,即x轴,y轴,.......
答案 0 :(得分:0)
我不能专门为Python说话,但你想要的算法是Jarvis March (aka gift-wrapping method).首先找到一个已知的极值点 A (简单地通过数字比较坐标)。然后,将此点与集合中的每个其他点 B 配对,直到找到一个使得集合中的所有其他点都位于 AB 的一侧。这意味着 B 是一个极端点,因此将 A 替换为 B 并重复此过程。最终结果是极端点和凸包。
请注意,复杂度为O( nh ),其中 h 是最终找到的船体顶点数。 Graham scan效率更高,但不能超越三维。