嗨大家协助我检查矩形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#。谢谢你们。
答案 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建议的内容。