Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Попадает ли точка в полигон? 
:(
    Опции темы
WaReZMEN
Дата 24.10.2006, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Пишу я на C# под .NET возник вопрос можно ли определить попадает ли точка в Region или Polygon, или может есть способ как определить по какому нарисованному объекту был сделан щелчек мыши?
PM MAIL ICQ   Вверх
ivashkanet
Дата 24.10.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Код

            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
PM MAIL WWW ICQ   Вверх
WaReZMEN
Дата 24.10.2006, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Спасибо большое smile
PM MAIL ICQ   Вверх
ivashkanet
Дата 24.10.2006, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



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

Не за что
Заходи еще  smile 
PM MAIL WWW ICQ   Вверх
WaReZMEN
Дата 25.10.2006, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Блин оказывается 

Region - это прямоугольник.... а мне нужна фигура состоящая из кучи точек типа  Polygon. Можно ли как нибудь их сооеденить или как в полигоне определить попадает ли точка в полигон?
PM MAIL ICQ   Вверх
Djuffin
Дата 25.10.2006, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 18.3.2005

Репутация: 1
Всего: 2



Цитата(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();


PM MAIL   Вверх
Gorcer
Дата 25.10.2006, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Так у меня в место Rectangle Points
я WaReZ_MEN
Блин случаино залогинелся другим польщователем 


Это сообщение отредактировал(а) Gorcer - 25.10.2006, 02:25


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
Djuffin
Дата 25.10.2006, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 18.3.2005

Репутация: 1
Всего: 2



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


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

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


Just see MSDN.
PM MAIL   Вверх
WaReZMEN
Дата 25.10.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



спасибо!!! А от куда вы это знаете может поделитесь источником информаций?
PM MAIL ICQ   Вверх
Djuffin
Дата 26.10.2006, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 18.3.2005

Репутация: 1
Всего: 2



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

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

MSDN - http://msdn.microsoft.com/
GOOGLE - http://www.google.com/
PM MAIL   Вверх
Moid
Дата 19.3.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



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


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
vponomarov
Дата 19.3.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



Цитата

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

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


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Moid
Дата 19.3.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3



так и перебераю по точкам,  думал готовые методы есть.

Проверяю попадание объекта в облать:
<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, то считается, что объект попал.

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


--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0880 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.