Определить попадание точки в прямоугольник или эллипс на 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("Попала в прямоугольник!");

  • Реклама сайта
  • Категории
  • Комментарии автору
    • Это очень классная идея )) С нетерпением жду!!! Ты мозг! Респект
    • традиционно - плюс за классную штуку
    • Просто хотел лично тебе выразить свою благодарность! Очень обрадовал меня, что помог!
    • Очень помог! Этот человек гений и я рад, что такие люде ещё есть!
    • Помог реализовать добавление музыки
    • За решение проблема знак вопрос квадрат у строка заголовок
    • very helped me =)
    • Спасибо за Social Engine!
    • Спасибо большое
    • вот спасибо :)
    • Красавчик)))
    • классная штука
    • superman
    • evteev, ты кудесник.
    • +1, решили проблему. Evteev, большое спасибо.
    • кул кул и ещё раз кул.
    • помог решить проблему с вкладкой с музыкой! Спасибо!
    • спасибо тебе огромное, работает!
    • СПАСИБО за мод, сэкономило мне уйму времени на создание своего.
  • Статистика