c - 找出一个矩形是否在另一个矩形内 [C]

标签 c geometry

所以我有两个矩形,用户必须输入左下点(x1,y1,但y1始终为0)和右上角的点(x2,y2),我必须找出其中一个是否完全在里面另一个(或者它们完全相同)。

这会有点困难,因为我实际上必须制作程序,以便用户可以决定他们想要创建多少个矩形,但一开始我很高兴知道如何检查 2 个矩形.

最佳答案

下面是比较内部矩形的边和外部矩形的边

if Right2 < Right1 && Left2 > Left1 && Top2 > Top1 && Bottom2 < Bottom1

执行:
struct RECT
{
    double x,y, w,h;

    RECT(double a,double b,double c,double d)
    {
    x=a; y=b; w=c; h=d;
    }
};


bool contains(RECT R1, RECT R2)
{
    if (   (R2.x+R2.w) < (R1.x+R1.w)
        && (R2.x) > (R1.x)
        && (R2.y) > (R1.y)
        && (R2.y+R2.h) < (R1.y+R1.h)
        )
    {
        return true;
    }
    else
    {
        return false;
    }
}

关于c - 找出一个矩形是否在另一个矩形内 [C],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27768039/

相关文章:

c - 涉及for循环的fork函数

c - 如何将二进制文件读入C中的结构

c - 如何定义数组以适应负索引?

c - 在没有 stdlib 的情况下调用 atoi 是未定义的行为吗?

void * 可以被malloc吗?

c++ - 求模拟粒子轨迹的3D点和 vector 几何C++库

javascript - 将 javascript 数组保存到 Postgres 多边形字段中

java - 用Java计算圆的面积

android - 安卓原生闹钟应用的时间选择器 View 在哪里可以找到?

c++ - 检查两个 vector 是否平行的最有效方法