<分区>
我如何才能通过知道多边形的点来测试多边形是否是凸 与他们在 C++ 中的坐标?
<分区>
我如何才能通过知道多边形的点来测试多边形是否是凸 与他们在 C++ 中的坐标?
最佳答案
对于多边形的每一边,计算线方程 (Ax+By+C=0
) 并检查(将 x
和 y
放入方程并得到它的符号),所有点都来自它的一侧。
编辑: 如果旅行凸多边形,您将始终在每个点上向一个方向(向左或向右)旋转。 使用叉积,您可以简单地推断出下一回合您将旋转到哪一侧(负或正)。如果三个连续点的所有叉积都具有等号,那么您的多边形是凸的。
关于c++ - 多边形 C++ 的凸性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190810/