如何判断2个区域有交集!!!!

shanying_0 2008-09-14 07:08:31
如何判断2个区域region有交集?
...全文
724 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vrhero 2008-09-14
  • 打赏
  • 举报
回复
Region.Intersect方法将其自身更新为与指定的Region的交集...

你只需要判断下其Intersect后是否为空即可...Xor方法和Complement方法一样的道理...
shanying_0 2008-09-14
  • 打赏
  • 举报
回复
楼上的大哥呀。关键是Region.Xor 等方法他们都没有返回值呀。如何判断是否为空
比如说public void Intersect (
RectangleF rect
)
返回为void的。。。。

reg1.Intersect(r2);

if (reg1==null)这样是不行的。。。。。

现在郁闷中呢。有什么好方法判断么?????
vrhero 2008-09-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shanying_0 的回复:]
还有这个var 怎么用!!!!!!

public void Intersect (
RectangleF rect
)
是没有返回直的。你怎么能把他弄给var 类型呢
[/Quote]
此Intersect非彼Intersect...Region.Intersect方法不是这么用的...
vrhero 2008-09-14
  • 打赏
  • 举报
回复
是图形啊...更简单...用Region.Xor方法或Region.Complement方法...

这种问题看看文档就有答案了...
shanying_0 2008-09-14
  • 打赏
  • 举报
回复
还有这个var 怎么用!!!!!!

public void Intersect (
RectangleF rect
)
是没有返回直的。你怎么能把他弄给var 类型呢
shanying_0 2008-09-14
  • 打赏
  • 举报
回复
Rectangle r2 = new Rectangle(0,0,this.ClientRectangle.Width,this.ClientRectangle.Height);
Region reg1 = new Region(this.ClientRectangle);
Region reg2 = new Region(r2);
reg1.Intersect(r2);

我说的是在form中呀。楼上的方法貌似不行把!!不知道该怎么用!!!1
vrhero 2008-09-14
  • 打赏
  • 举报
回复 1
LINQ...
var a = new int[] { 1, 2, 3 };
var b = new int[] { 3, 4, 5 };
var inter = a.Intersect(b);
ProjectDD 2008-09-14
  • 打赏
  • 举报
回复
元素交集和位置无关,我想也是楼上说的,

用foreach来全查找
...
//X1
//X2

foreach(var item1 in X1)
{
foreach(var item2 in X2)
{
if(item1==item2)
{
return true;
}
}
}

关于item1与item2的比较,也可以自定义一个函数..来做.
消失的尘芥 2008-09-14
  • 打赏
  • 举报
回复
做一个foreach分别取出两个区域的元素,在进行判断

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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