1
1
我不确定有没有比你提到的更好的方法。问题是,在一般情况下,从一个矩形区域减去另一个矩形区域会在两个区域之间留下一个洞,因此结果实际上不是一个矩形。在您的例子中,您知道任务栏正好位于屏幕矩形的一侧,因此“最佳”方法实际上是确定任务栏是哪一侧,并从该一侧减去宽度/高度。 |
2
9
假设矩形2包含在矩形1中 (如果不是,则使用两个矩形的交点作为矩形2):
该区域可分解为4个矩形:
如果矩形1和矩形2的三条边重合,则从减去的区域中得到一个矩形(这是您的情况)。一般来说,最多可以得到4个矩形。 objective-c中的实现(抱歉,目前没有visual studio):
|
3
2
得到你的结果会稍微困难些。。我认为你只能测试区域的可见性,或者你可以得到它的边界-但是你必须为此定义你自己的图形(我不知道在这里使用什么参数)。 http://msdn.microsoft.com/en-us/library/system.drawing.region_methods.aspx |
4
1
除非矩形的三条边重合,否则从一个矩形中减去另一个矩形将得到一个不是矩形的形状,因此“减去矩形”的一般解决方案实际上意义不大。 三面重合的解决方案: 给定矩形(Ax,Ay,Aw,Ah)和(Bx,By,Bw,Bh):
已编辑。 |
5
1
|
6
1
灵感来自我之前的答案:
祝你有美好的一天。 |
7
0
我想我不明白你想从中得到什么。NET以监视器的分辨率减去任务栏占用的空间来报告桌面的当前工作区域。
确定屏幕的工作区域已在.NET中公开(包括任务栏停靠在顶部或左侧时移动的X/Y坐标)。
|
8
0
该矩阵显示了每种情况下发生的情况:
我们可以概括为:
矩阵揭示了这个算法:
其中C/C++ +java和其他类似语言可以写成:
这似乎是正确的情况下,你给。我还没有重新检查其他的案子,所以我可能搞错了。 编辑:
|
9
0
这里是ActionScript中的函数。它将返回一个新的矩形,该矩形不与提供的任何矩形重叠
|
10
0
从一个矩形中减去一个矩形将产生一个矩形列表
请注意
结果已经通过几个单元测试进行了验证。
|
11
0
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |