.NET (VB.NET | C#) WPF 判断两个控件是否接触,比如两个Polygon是否有重叠? 200
1个回答
展开全部
如图所示黑色矩形为窗体边线;
L1是控件1的左边离开窗体左边界的距离;
T1是控件1的上边离开窗体上边界的距离;
W1是控件1的宽度;
H1是控件1的高度;
L2是控件2的左边离开窗体左边界的距离;
T2是控件2的上边离开窗体上边界的距离;
W2是控件2的宽度;
H2是控件2的高度;
如果把边界相切也算作重叠,根据数学知识可以找出不重叠的数学关系;
一,水平情况不重叠;
1,控件1在控件2的左边
有:L1 + W1 < L2
2,控件2在控件1的左边
有:L2 + W2 < L1
二,垂直情况不重叠;
3,控件1在控件2的上边
有:T1 + H1 < T2
4,控件2在控件1的上边
有:T2 + H2 < T1
以上四种情况只要有一个成立,两个控件就不重叠;反之就重叠,代码的逻辑关系如下;
If (L1 + W1 < L2) Or (L2 + W2 < L1) Or (T1 + H1 < T2) Or (T2 + H2 < T1) Then
MsgBox("不重叠!")
Else
MsgBox("重叠!")
End If
追问
你说的这个我知道,我想知道Polygon的重叠判断。不规则图形.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询