Определить попадание точки в прямоугольник или эллипс на C#

29 мая 2010

Работая в Visual Studio в C# можно легко определить попадание точки с координатами (X, Y) в область прямоугольника или эллипса. Определяется это даже без применения каких либо геометрических формул, все очень просто - с помощью стандартных средств Visual Studio.
Определить попадание точки
Давайте посмотрим как же будем это определять.

//Сначала определим переменные с шириной и высотой прямоугольника и эллипса.
int RectangleWidth = 400;
int RectangleHeight = 200;
int EllipseWidth = 500;
int EllipseHeight = 450;

//Далее зададим им координаты размещения на форме.
int coordR_X = 200;
int coordR_Y = 200;
int coordE_X = 100;
int coordE_Y = 400;

//<strong>Создадим прямоугольник</strong>.
Rectangle RectangleDraw = new Rectangle(coordR_X, coordR_Y, RectangleWidth, RectangleHeight);
//<strong>Создадим эллипс</strong>.
Rectangle EllipseDraw = new Rectangle(coordE_X, coordE_Y, EllipseWidth, EllipseHeight);

//Создадим графическую область для прямоугольника и эллипса.
GraphicsPath GraphicsPathRectangle = new GraphicsPath();
GraphicsPath GraphicsPathEllipse = new GraphicsPath();

//Добавим в первую область созданный прямоугольник.
GraphicsPathRectangle.AddRectangle(RectangleDraw);

//Добавим во вторую область созданный эллипс.
GraphicsPathEllipse.AddEllipse(EllipseDraw);

//Создадим точку с координатами (100; 200).
Point PointUser = new Point(100, 200);

Все, мы выполнили создание прямоугольника, эллипса и точки.
Теперь давай проверим определим в какую область попала точка.
С помощью объекта IsVisible можно это сделать.

if (GraphicsPathEllipse.IsVisible(PointUser))
	MessageBox.Show("Попала в эллипс!");

if (GraphicsPathRectangle.IsVisible(PointUser))
	MessageBox.Show("Попала в прямоугольник!");