凸包

一组点的凸包

关于这个计算器

凸包计算器使用 Andrew 单调链算法求出包含一组二维点的最小凸多边形。它按逆时针顺序列出凸包的角顶点,统计有多少点位于凸包上以及内部,并报告精确的面积和周长,同时用散点图勾勒出结果。重复点和共线点均可正确处理。

如何求凸包

  1. 以逗号分隔的 x,y 数对形式输入各点——顺序无关紧要。
  2. 计算器会合并重复点,并将各点从左到右排序。
  3. 它扫描排序后的点以构建下边界和上边界,仅保留轮廓向左转的角顶点。
  4. 读取凸包顶点、面积和周长,并查看绘制在你的点之上的轮廓。

常见示例

  • 正方形角点 0,0 6,0 6,4 0,4 加内部点 3,2 和 2,1 → 4 个凸包顶点,面积 24,周长 20
  • 三角形 0,0 4,0 0,3 → 3 个凸包顶点,面积 6,周长 12
  • 共线点 0,0 1,1 2,2 3,3 → 退化凸包(一条线段),面积 0
  • 正方形 0,0 4,0 4,4 0,4 加顶点 2,5 → 5 个凸包顶点,因该尖点延伸了顶边

常见问题

什么是凸包?

一组点的凸包是包含所有这些点的最小凸多边形——就像用一根橡皮筋套住最外层的点并让它绷紧一样。

哪些点会成为凸包顶点?

只有极端的角点位于凸包上。严格位于图形内部的点,以及恰好落在凸包某条边上的点,都不会被列为顶点。

如何处理重复点或共线点?

会先合并相同的点。若所有点都位于同一条直线上,凸包退化为一条零面积的线段,计算器将其报告为退化凸包。

我需要多少个点?

至少需要三个互不相同且不共线的点,才能构成一个面积为正的凸包。