我试图写小程序来检查,如果一个矩形包含第二矩形和距离速滑运动员的肌肉它们的边界应小于100一样或50 当我使用一些特定号码Rectangle.contains方法不关心两个矩形的边界之间的距离。 这有什么办法可以实现?检查是否矩形包含与边框之间的特定距离另一个矩形
回答
在矩形,我们具有
布尔含有(双X,双Y)
--- Tests if a specified coordinate is inside the boundary of this Rectangle2D.
布尔含有(双X,双Y,双瓦特,双H)
--- Tests if the interior of this Rectangle2D entirely contains the specified set of rectangular coordinates.
因此,不可能检查我的知识距离...
示例代码等?
即使如此,你要做到以下几点: 除非即时通讯错误的。
伪代码:
rectA = outside, rectB = inside
if rectB.left - rectA.left < x then distance is ok else do something
if rectB.top - rectA.top < y then distance is ok else do something
等等等等
如果矩形是正交的,我假设你已经叫contains(Rectangle rect)
。然后你只需要做一些额外的比较:
inside.x - outside.x >= LEFT_BORDER &&
outside.x + outside.width - inside.x - inside.width >= RIGHT_BORDER &&
inside.y - outside.y >= TOP_BORDER &&
outside.y + outside.height - inside.y - inside.height >= BOTTOM_BORDER
LEFT_BORDER
,RIGHT_BORDER
,TOP_BORDER
,BOTTOM_BORDER
是你定义。
如何计算值leftBorder,rightBorder等,我看不出有任何的API这里面rectnagle类 – user613114
@ user613114:你用任何你想要的值来定义它们。 – nhahtdh
您可以使用contains(Rectancle r)方法两次:首先检查内部矩形是否在外部矩形内部,然后将内部矩形临时放大到每个方向阈值的一半并再次进行相同检查。这一次它不应该在外部矩形内。所以基本上是这样的:
//Rectangle outer; // Do some proper setup for these two
//Rectangle inner;
int limit = 50;
boolean containsWithinLimits = outer.contains(inner);
inner.setLocation(inner.getX()-limit/2, inner.getY()-limit/2);
inner.setSize(inner.getWidth()+limit, inner.getHeight()+limit);
boolean containsWithinLimits = containsWithinLimits && !outer.contains(inner);
// Now reset the bounds:
inner.setLocation(inner.getX()+limit/2, inner.getY()+limit/2);
inner.setSize(inner.getWidth()-limit, inner.getHeight()-limit);
Xes它解决了这个问题。谢谢。但我工作的主要问题并未解决。而且我为此创建了一个单独的线程。 [http://stackoverflow.com/questions/10959703/swing-jxmapviewer-focus-on-a-object-and-set-corresponding-zoom-level]。如果你们都有这方面的专业知识,你可以帮助我。 – user613114
为什么社区wiki? – Tharwen
@Tharwen错误。 :/ – ZeroOne
- 1. 检查圆形是否包含矩形
- 2. 两个矩形之间的距离
- 3. jQuery/canvas:检查矩形是否穿过另一个矩形
- 4. 检查点是否在矩形的给定距离内?
- 5. 矩形之间的最小距离
- 6. 测试矩形是否包含另一个矩形的全部或部分?
- 7. 检查CGRect是否包含在另一个(已转换的)矩形中
- 8. 另一个矩形内的矩形
- 9. 矩形间的移动距离
- 10. 检查两个矩形是否重叠
- 11. 检查一个点是否包含在一个矩形内时出错
- 12. 矩形边框Java
- 13. Raphael矩形边框
- 14. 如何检查任何矩形是否包含圆? (在pygame中)
- 15. WPF形状矩形边框总是空
- 16. Libgdx:如何检查当前矩形上方是否有矩形?
- 17. 圆形与矩形之间的碰撞
- 18. Snap SVG - 检查一个转换后的矩形是否完全位于另一个矩形内部?
- 19. 仅有一个边框的矩形
- 20. Javascript函数确定一个点是否在矩形之间
- 21. 查找矩形包含矩形数组中的点
- 22. Hausdorff凸多边形之间的距离
- 23. 检查是否在矩形的点
- 24. 如何测试一个矩形是否在另一个矩形中?
- 25. 检查矩形是否在两点之间
- 26. Pygame;检查两个矩形上任意点之间的最短距离是否小于x量?
- 27. 计算点和矩形之间的带符号距离
- 28. C#XNA计算矩形之间的距离(适合旋转)
- 29. 矩形有一个斜边
- 30. 检查矩阵是否正方形? (Python)
矩形总是正交吗? – nhahtdh
是他们的轴始终对齐。 – user613114