首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有人能给我解释一下旋转卡尺吗?

有人能给我解释一下旋转卡尺吗?
EN

Stack Overflow用户
提问于 2012-12-07 22:37:03
回答 1查看 8.3K关注 0票数 10

我正在努力计算一组点的最小封闭矩形(任意对齐)。

我能够使用graham算法来计算凸包。

我被卡住的地方是下一步。我想过使用旋转卡尺的方法,但我似乎找不到对该算法的充分解释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-07 22:40:18

如果你有凸包,那么一个基本的算法很容易实现。你只需穿过凸包的每一条边,旋转你的点,使这条边沿着一个主轴,比如说X轴。然后,您会找到这些点的轴对齐边界框。选择最小的边框。

通过获取每个维度的最小值和最大值,可以找到轴对齐的边界框。

如果将边界框旋转相反的量,它现在将包含您的原始点。

若要提高效率,请注意,可能影响边界框的唯一点位于凸面外壳线上。

要使其真正有效,请注意凸包周围只有四个点同时接触边界框(严格来说这不是真的,但现在先忽略它)。如果将这些点旋转到足以使下一条边与边界框对齐,则其中三个点是相同的,并且其中一个点将替换为凸面外壳周围的下一个点。这使您可以创建一个算法,该算法在凸面外壳上的点数方面是线性的。

现在有两条边平行或垂直的特殊情况。这将导致任何时候都有四个以上的点接触边界框,但实际上这并不重要。如果您可以在两条平行边中选择下一条边,您可以任意选择其中一条边。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13765200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档