在地图中绘制多边形时如何判断两图形有重叠部分

WhiteIsOnTheRoad 2017-02-20 04:59:45
在地图中绘制多边形时如何判断两图形有重叠部分
...全文
3097 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
WhiteIsOnTheRoad 2017-02-22
  • 打赏
  • 举报
回复
谢谢各位你宝贵的意见
WhiteIsOnTheRoad 2017-02-21
  • 打赏
  • 举报
回复
可是要如何判断呢
闭包客 2017-02-21
  • 打赏
  • 举报
回复
我觉得可以判断矩形的边是否相交。
WhiteIsOnTheRoad 2017-02-21
  • 打赏
  • 举报
回复
谅解我是个渣渣 还是没太懂

可是多边形形状不定 怎么判断呢
例如
这个图中的图形 当我再画的时候要怎么去检测呢

请大神再详解一下
xinweilee 2017-02-21
  • 打赏
  • 举报
回复
using (Graphics g = this.CreateGraphics())
{
GraphicsPath path = new GraphicsPath();
path.AddPolygon(new Point[] { new Point(0, 0), new Point(30, 30), new Point(70, 70), new Point(20, 90) });
Region region = new System.Drawing.Region(path);
GraphicsPath path1 = new GraphicsPath();
path1.AddPolygon(new Point[] { new Point(300, 300), new Point(700, 700), new Point(600, 900), new Point(300, 600) });
Region region1 = new System.Drawing.Region(path1);
region.Intersect(region1);
var rect = region.GetBounds(g);

var intersectflag = !rect.IsEmpty;
}
zbdzjx 2017-02-21
  • 打赏
  • 举报
回复
胡乱说说:先画一个多边形,填充蓝色,再画另一个多边形,填充颜色时,判断有没有蓝色的点,如果有,就是重叠的部分。
WhiteIsOnTheRoad 2017-02-21
  • 打赏
  • 举报
回复
可是要怎么去判断呢
巴士上的邂逅 2017-02-21
  • 打赏
  • 举报
回复
如果只是相交,必定两个多边形某两个边会相交 如果包括包含的情况,先判断包含
  • 打赏
  • 举报
回复
简单说,首先判断多边形的外延的矩形有没有重叠,这可以很简单地用一个类似 a>b && d<c && c>a && d<b 之类大小比较公式来判断矩形相交。 只有举行不相交,才需要判断多边形是否重叠。在矩形相交的区域内,需要遍历每一个点,判断一下它是否命中在多边形之内(遍历多边形每一个边,判断在所有边的“左边”。 通常,如果你选择一个最基本的面向绘图的开发工具,它都有现成的两个函数,帮你判断“矩形相交区域”和“命中检测”两项功能。除非你用了很低级的非绘图用的开发工具,才需要自己写代码。

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧