c# - 如何检测重叠的多边形?

标签 c# wpf polygon overlap overlapping

我有一个 Canvas ,其中有多个多边形,我想要做的是尝试检测多边形是否重叠。我浏览了各个网站,发现的大部分内容都与对象碰撞有关 - this for example ,我的多边形没有移动,所以这不会成为问题。 我想知道是否有人可以为我指明如何检测它们是否重叠的正确方向。有没有一种方法可以计算屏幕上使用的空间?或用于比较两者的多边形区域?

例如,就像这里的模型一样,红色形状与绿色形状重叠。 基本上我想说的是,它们重叠,或者不,它们不重叠。

http://peterfleming.net84.net/Slice%201.png

提前致谢。

皮特

最佳答案

这里的这个库(免费和开源)将显示多边形裁剪:http://www.angusj.com/delphi/clipper.php

也就是说,如果多边形重叠意味着一个点至少有一个点在另一个点内部,则可以通过查看 point in point polygon problem 来测试每个多边形的点与其他点的对比。或checking each polygons lines to see if it cuts across another polygon .

这些方法都会有不同的效率,尝试看看什么最适合您的情况。

但是,您的图表似乎表明您想查看这些多边形是否“并排”或类似的东西。这将有助于澄清这一点。重叠通常需要一些坐标计划来确定重叠。

关于c# - 如何检测重叠的多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10635040/

相关文章:

远程计算机上的 C# 进程

c# - 由于未初始化的静态属性,单元测试失败

c# - 将语音转换为文本 C#

c# - 如何将桌面应用程序与网页连接?

mysql - 使用 mySQL 进行空间查询

c# - 如何在 C# 中将一系列 excel 记录检索到数据表中

c# - 绑定(bind)到 WPF 中的设计数据

wpf - 关于 View 模型和互连组合框的建议

用于在图中查找人脸的 Java 算法

canvas - D3 Canvas 地球仪鼠标事件