.NET (VB.NET | C#) WPF 判断两个控件是否接触,比如两个Polygon是否有重叠? 200

 我来答
syx54
2018-01-29 · TA获得超过7376个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2652万
展开全部

如图所示黑色矩形为窗体边线;

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的重叠判断。不规则图形.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式