检查特定点x,y是否在矩形内

时间:2014-03-15 13:02:06

标签: c# geometry point rectangles

我正在尝试编写一个程序,它通过宽度和高度以及它的左上角和左上角指定一个矩形。我希望程序允许用户输入一个点x,y,之后我的目标是让程序确定该点是否在矩形内。

到目前为止,这是我的代码,但我不知道如何继续。任何人都可以帮我实现bool Rectangle.Contains(x, y)吗?

public struct Rectangle
{
    // declare the fields
    public int Width;
    public int Height;
    public int Top;
    public int Left;

    // define a constructor
    public Rectangle(int Width, int Height, int Top, int Left)
    {
        this.Width = Width;
        this.Height = Height;
        this.Top = Top;
        this.Left = Left;
    }

    public bool Contains(int x, int y) { }
}

class MainClass
{
    public static void Main()
    {
         Console.WriteLine("Creating a Rectangle instance");
         Rectangle myRectangle = new Rectangle(6, 2, 1, -1);

         Console.WriteLine("myRectangle.Width = " + myRectangle.Width);
         Console.WriteLine("myRectangle.Height = " + myRectangle.Height);
         Console.WriteLine("myRectangle.Top = " + myRectangle.Top);
         Console.WriteLine("myRectangle.Left = " + myRectangle.Left);
    }
}

2 个答案:

答案 0 :(得分:3)

我之前没有使用System.Drawing.Rectangle课程,但我认为您可以使用Contains(Point)方法。以下是该文档的链接:http://msdn.microsoft.com/en-us/library/22t27w02(v=vs.110).aspx

如您所见,传递给Contains()的参数的类型为Point。使用用户输入的x,y值创建该类型的变量,并将其传递给Contains()方法。以下是Point结构的链接:http://msdn.microsoft.com/en-us/library/system.drawing.point(v=vs.110).aspx

当您查看Point的文档时,请注意左侧有几个指向不同使用点的方法的链接。

答案 1 :(得分:0)

在不知道它是直角三角形还是三角形的方向的情况下,很难给出精确的答案,但我将使用的一般方法是获得顶点与点的角度与每个顶点之间的角度。然后,您可以使用角度进行边界检查。