gpt4 book ai didi

java - 如何找到两个任意多边形之间的重叠区域

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

我正在尝试创建一个方法,该方法将接受两个任意节点列表,一个主题和一个剪裁多边形,并输出:

a) the area of the overlap
b) a list of nodes for the resulting (clipped) polygon so that I can calculate the area

我发现了很多使用矩形窗口(这在图形中相当标准)裁剪任意多边形的示例,但这不是我需要的。我知道它相当复杂,特别是当你有洞、凸多边形等时。我可以做的唯一简化假设是任意多边形不包含任何孔。

我根本不是这个领域的专家,那么像 Sutherland-Hodgman 算法这样的算法行得通吗?是否有任何图书馆已经这样做了,或者我最好的选择是按照 Wikipedia 上的伪代码中描述的那样简单地实现算法。 ?

感谢您的帮助!

最佳答案

Are there any libraries out there which already do this ...

多边形裁剪是一项复杂的任务。我不建议尝试自己做,除非您想花很多个月的时间。维基百科列出了许多剪辑库(IIRC 在该列表中只有 Clipper 可以免费用于商业应用程序): http://en.wikipedia.org/wiki/Boolean_operations_on_polygons#External_links

ps:我承认对 Clipper 有个人偏见,因为我是作者 :)更多信息在这里:http://angusj.com/delphi/clipper.php

关于java - 如何找到两个任意多边形之间的重叠区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4229425/

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