gpt4 book ai didi

algorithm - 图形算法 : Sutherland-Hodgman clipping algorithm - what happens when 2 outer vertices cross the clipping area?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:21:00 25 4
gpt4 key购买 nike

Sutherland-Hodgman 算法中解释了 4 条用于裁剪多边形的规则:

  • 如果两个顶点都在裁剪区域内 - 保存第二个
  • 如果第一个顶点在内部,第二个在外部 - 计算与裁剪区域边界的交点并保存
  • 如果第一个顶点在外面而第二个在里面 - 计算与裁剪区域边界的交点并保存,同时保存第二个顶点
  • 如果两个顶点都在外面 - 什么都不保存

根据这个解释,当一条由2个顶点组成的线穿过裁剪区域时,如下图会怎样?

如果我遵循算法步骤,我最终会完全没有顶点......没有考虑这种情况吗?也许我应该预先计算所有交叉区域并同时使用它们?

ClippingProblem

最佳答案

我终于自己找到了答案-我会在这里分享给所有喜欢知道的人......

您可能会在此处看到正确算法的描述:https://www.youtube.com/watch?v=Euuw72Ymu0M

许多教程错误地描述的是,应该将每个顶点视为裁剪区域的内部/外部,然后应用问题中描述的规则以上。

正确 算法 - 遍历裁剪区域的所有边缘。不要考虑裁剪区域内部/外部的顶点 - 正确的做法是将顶点视为在我们迭代的特定边的内侧/外侧 .这意味着,例如,对于问题中的示例图像 - 裁剪区域的左边缘会将蓝色矩形的右上角视为 inside - 因为尽管它在裁剪区域之外, 它在左边缘的内侧。例如,左上角将被这条边视为外部

如果算法是在 2D 中完成的,我们有 4 个裁剪区域的边缘。例如,我们首先在左边缘应用算法 - 然后我们使用它的输出在右边缘运行算法,然后在上边缘和下边缘运行相同的算法。最终答案将是最后一个的输出。

即如果我们使用Left->Right->Up->Bottom,最终输出的将是底边输出的顶点列表。

您可以尝试运行此算法,遵循问题中描述的每条边规则 - 您会看到最终的多边形将恰好是被剪裁的多边形

关于algorithm - 图形算法 : Sutherland-Hodgman clipping algorithm - what happens when 2 outer vertices cross the clipping area?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30144514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com