检查矩形B是否完全包含在矩形A中

时间:2015-11-13 14:48:20

标签: c#

嗨大家协助我检查矩形B是否完全包含在矩形A中,这是一个可以使用的示例代码:

类矩形

Public class Rectangle
{
    Public int X1 { get; set; }
    Public int X2 { get; set; }
    Public int Y1 { get; set; }
    Public int Y2 { get; set; }

    public bool IsWhollyContained(Rectangle otherRectangle)
    {
        //Write your code here
    }
}

主要方法

Public static void main(string[] args)
{
    Rectangle A = new Rectangle { X1 = 2, Y1 = 1, X2 = 4, Y2 = 4}};
    Rectangle B = new Rectangle { X1 = 1, Y1 = 6, X2 = 5, Y2 = 1}};

    bool isContained = B.IsWhollyContained(A);
}

任务是完成方法IsWhollyContained。如果您知道答案,请提供帮助,使用的语言是C#。谢谢你们。

3 个答案:

答案 0 :(得分:0)

对矩形的点进行排序以确保获得矩形的右边界而不是比较点,试试这个:

{WLBills.dr} - {WLBills.cr}

答案 1 :(得分:0)

如果您使用的是System.Drawing Rectangle

,则可以使用以下代码
Rectangle rect1, rect2;
// initialize them
if(rect1.Contains(rect2))
{
    // do...
}

以下是链接1

如果您使用自己的矩形,可以检查第一个矩形的所有角点是否属于第二个矩形。

bool PointInsideRectangle(Point pt, double y0, double x0, double y1, double x1)
{
   if (x1 < x0)
    {
        return pt.X < x0 && pt.X > x1 && pt.Y < y0 && pt.Y > y1;
    }

    // it crosses the date line
    return (pt.X < x0 || pt.X > x1) && pt.Y < y0 && pt.Y > y1;        
}

或者您只需要检查第一个矩形中的x0,y0与第二个矩形中的x0,y0以及第一个矩形的高度,并将其与第二个矩形进行比较。

答案 2 :(得分:0)

我假设X1,X2,Y1和Y2是矩形左下角和右上角的坐标。
如果另一个矩形应该位于第一个矩形内,则必须满足以下条件:

rectangle1.X1 < rectangle2.X1
rectangle1.Y1 < rectangle2.Y1
rectangle1.X2 > rectangle2.X2
rectangle1.Y2 > rectangle2.Y2

但您不需要在矩形中存储所有这些坐标。 System.Drawing有一个名为Point的东西,你可以为它分配一个X和Y坐标。但如果你已经包括System.Drawing,你可以选择Hazem Abdullah建议的内容。