Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Попадает ли точка в полигон?


Автор: WaReZMEN 24.10.2006, 12:55
Пишу я на C# под .NET возник вопрос можно ли определить попадает ли точка в Region или Polygon, или может есть способ как определить по какому нарисованному объекту был сделан щелчек мыши?

Автор: ivashkanet 24.10.2006, 13:14
Код

            Region r = new Region(new Rectangle(0, 0, 100, 100));
            Point p = new Point(99,10);
           bool b =  r.IsVisible(p);


Хотя я немного обескуражен названием метода. 
IsVisible  smile 


P.S. Что есть класс Polygon. Что-то ObjectBrowser о нем не знает smile

Автор: WaReZMEN 24.10.2006, 14:36
Спасибо большое smile

Автор: ivashkanet 24.10.2006, 14:46
Цитата(WaReZMEN @  24.10.2006,  14:36 Найти цитируемый пост)
Спасибо большое

Не за что
Заходи еще  smile 

Автор: WaReZMEN 25.10.2006, 01:06
Блин оказывается 

Region - это прямоугольник.... а мне нужна фигура состоящая из кучи точек типа  Polygon. Можно ли как нибудь их сооеденить или как в полигоне определить попадает ли точка в полигон?

Автор: Djuffin 25.10.2006, 02:03
Цитата(WaReZMEN @  25.10.2006,  01:06 Найти цитируемый пост)
Region - это прямоугольник....

НЕТ!

Делаешь произвольный GraphicsPath а потом по нему создаешь Region.
Код

   GraphicsPath path = new GraphicsPath();

    path.AddRectangle(new Rectangle(0, 4, 2, 5));
    path.AddEllipse (new Rectangle(4, 2, 7, 10));

    Region region = new Region(path);
    path.Dispose();


Автор: Gorcer 25.10.2006, 02:23
Так у меня в место Rectangle Points
я WaReZ_MEN
Блин случаино залогинелся другим польщователем 

Автор: Djuffin 25.10.2006, 02:36
Цитата(Gorcer @  25.10.2006,  02:23 Найти цитируемый пост)
Так у меня в место Rectangle Points


Points говоришь, тогда выбирай любую.
Код

GraphicsPath.AddPolygon (Point[] points) 
GraphicsPath.AddCurve (Point[]) 
GraphicsPath.AddBeziers (Point[]) 


Just see MSDN.

Автор: WaReZMEN 25.10.2006, 14:18
спасибо!!! А от куда вы это знаете может поделитесь источником информаций?

Автор: Djuffin 26.10.2006, 01:37
Цитата(WaReZMEN @  25.10.2006,  14:18 Найти цитируемый пост)
А от куда вы это знаете может поделитесь источником информаций?

У .net программиста как минимум два друга. Они решают 98% проблем.

MSDN - http://msdn.microsoft.com/
GOOGLE - http://www.google.com/

Автор: Moid 19.3.2008, 12:19
Как отловить попадание Polygon в прямоугольную область?

Автор: vponomarov 19.3.2008, 14:58
Цитата

Как отловить попадание Polygon в прямоугольную область? 

как вариант, проверить все точки полигона на попадание

Автор: Moid 19.3.2008, 15:44
так и перебераю по точкам,  думал готовые методы есть.

Проверяю попадание объекта в облать:
<csharp>
Region r = new Region(new Rectangle(238, 109, 406, 229));
Rectangle p = new Rectangle(320, 148, 154, 34);
bool b = r.IsVisible(p);
</csharp>

В этом случае если хотябы одна точка p попала в область r, то считается, что объект попал.

Как узнать полное попадание объекта в область?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)