java判断两个矩形是否相交_如何检查两个矩形几何形状之间的空间关系中使用Java...

如果测试矩形为参考矩形

如果测试矩形内被重叠的基准矩形

如果测试矩形仅与参考矩形

IF测试矩形和参考矩形是不同的共享边界

参考矩形和测试矩形都以其中心坐标(x,y)及其宽度和高度定义。

我相信我有正确的第一个检查编码,但我无法弄清楚重叠,共享边界和完全不同的最后三个检查的数学。

这里是我的四个检查,到目前为止的代码:

//returns true if the specified rectangle is inside this rectangle

public boolean contains(MyRectangle2D r){

if(this.x > r.x + r.width && x + width < r.x && y > r.y +r.height && y + height < r.y){

return true;

}

else{

return false;

}

}

//returns true if the specified rectangle overlaps with this rectangle

public boolean overlaps(MyRectangle2D r) {

if (this.x < r.x + r.width && x + width > r.x && y < r.y + r.height && y + height > r.y){

return true;

}

else{

return false;

}

}

//returns true if only the boundaries touch

public boolean abut(MyRectangle2D r) {

if(this.x = r.x + r.width && x + width = r.x || y = r.y +r.height && y + height = r.y){

return true;

}

else{

return false;

}

}

//returns true if the rectangles are not touching at all

public boolean distinct(MyRectangle2D r) {

}

2016-08-06

S Zapata

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
判断矩形和多边形是否相交或包含部分,你可以使用几何算法来解决。以下是一种可能的C++实现方法: 1. 定义矩形类和多边形类,分别表示矩形和多边形的属性和操作。 ```cpp // 矩形类 class Rectangle { public: double x1, y1; // 左下角坐标 double x2, y2; // 右上角坐标 // 构造函数 Rectangle(double x1, double y1, double x2, double y2) { this->x1 = x1; this->y1 = y1; this->x2 = x2; this->y2 = y2; } }; // 多边形类 class Polygon { public: std::vector<std::pair<double, double>> points; // 多边形的顶点坐标 // 构造函数 Polygon(std::vector<std::pair<double, double>> points) { this->points = points; } }; ``` 2. 实现一个函数来判断两个图形是否相交。 ```cpp bool isIntersecting(const Rectangle& rectangle, const Polygon& polygon) { // 判断矩形和多边形是否相交的逻辑 // ... return true; // 返回结果 } ``` 3. 在判断函数实现具体的相交判断逻辑。这个逻辑可能比较复杂,需要考虑多边形的边界和顶点与矩形的边界之间关系。你可以使用点与线段的位置关系、线段相交判断几何算法来处理。 这里给出一个简单的示例,假设多边形是凸多边形: ```cpp bool isIntersecting(const Rectangle& rectangle, const Polygon& polygon) { // 判断多边形的每条边是否矩形相交 for (int i = 0; i < polygon.points.size(); i++) { int j = (i + 1) % polygon.points.size(); // 下一个顶点的索引 // 判断线段与矩形是否相交的逻辑 // ... } // 判断多边形的顶点是否矩形内部 for (const auto& point : polygon.points) { // 判断是否矩形内部的逻辑 // ... } return false; // 如果没有相交的边或顶点,则返回 false } ``` 请注意,这只是一个简单的示例,实际上,判断两个图形是否相交的逻辑可能会更加复杂,具体取决于你对相交的定义和对多边形的表示方法。你可能需要进一步研究几何算法来处理更复杂的情况。 希望这个简单的示例可以帮助你开始实现判断两个图形是否相交或包含部分的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值