Точка внутри невыпуклой области

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Точка внутри невыпуклой области

Сообщение uhm » 15.02.2005 (Вт) 22:24

Вот есть у меня замкнутая невыпуклая область, назовем ее... мнэ-э... скажем, Полуэ... ой, то есть, полигоном. Известны все вершины полигона и порядок, в котором они идут. Требуется понять, лежит ли произвольно заданная точка внутри полигона. Два вопроса:

1) Работает ли API PtInRegion для невыпуклых полигонов?

2) Если писать такое самому - какой алгоритм использовать? Я придумал нечто такое: триангулировать полигон, а потом проверять попадание точки в каждый треугольник. Нет ли какого-нибудь более простого способа?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.02.2005 (Вт) 22:26

А почему бы не проверить, работает ли PtInRegion для невупыклых полигонов? ;)

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 16.02.2005 (Ср) 12:02

Вот честно - лень :)
А вдруг кто и так знает?

Вообще, если приспичит - проверю, конечно. Но меня как раз больше второй вопрос интересует, первый - это я так, "заодним" спросил :)
Быть... или не быть. Вот. В чём вопрос?

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 16.02.2005 (Ср) 19:04

я делал такую весчь для четырехугольников (выпуклых ессесно). делается так: сосдаются неравентсва каждой грани (помнишь как в алгебре 2x+3>12 чё-то типа этого :)) и потом проверяется удовлетворяет ли точка ВСЕМ неравенствам.
если надо могу код выложить.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 16.02.2005 (Ср) 20:34

Не, спасибо, для выпуклых многогранников все более-менее очевидно. Меня только невыпуклые интересуют.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 16.02.2005 (Ср) 21:17

Update: проверил - PtInRegion работает с невыпуклыми полигонами (во всяком случае, для невыпуклого пятиугольника все прекрасно работало).

Судя по отсутствию энтузиазма в ответах на второй вопрос, задачка действительно не совсем "тревильная". Будем считать, что тема закрыта (если, конечно, не найдется какой-нибудь гений, который предложит алгоритм из двух "сторчек" :) ).
Последний раз редактировалось uhm 17.02.2005 (Чт) 11:11, всего редактировалось 1 раз.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 16.02.2005 (Ср) 21:19

а) тривиальная
б) закрыта
в) строчек

А по поводу триангуирования полигона, - разве это настолько сложно?
Последний раз редактировалось Amed 17.02.2005 (Чт) 21:18, всего редактировалось 1 раз.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.02.2005 (Ср) 21:31

Задачка нетривиальная, но и сложного ничего нет. Безо всякой триангуляции: http://algolist.manual.ru/maths/geom/belong/poly2d.php
Изображение

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 17.02.2005 (Чт) 5:31

uhm писал(а):Не, спасибо, для выпуклых многогранников все более-менее очевидно. Меня только невыпуклые интересуют.

ой, сорри... не так прочитал твой вопрос.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 17.02.2005 (Чт) 11:10

Amed'у: насчет "закрыта" - принимается, насчет остального - смотри Цитаты дня. Кстати - "тривиальная"!!! :twisted:

Триангулирование - несложно, но, все-таки, по сравнению с задачей про выпуклый полигон, это сильное усложнение.

Tyomitch'у: спасибо, я оценил. Очень красивый алгоритм.

Всем спасибо!

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 17.02.2005 (Чт) 13:40

2 Amed:
Amed писал(а):а) тревиальная
uhm прав, ты не прав :) Проверить можно легко - зайди на [url=encycl.yandex.ru]yandex.энциклопедии[/url] и набери там "тревиальный". Получишь сообщение
"Опечатка? Возможно, имелось ввиду "тривиальный"" :roll:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.02.2005 (Чт) 13:45

http://gramota.ru/
Правописание рекомендуется проверять там.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.02.2005 (Чт) 13:46

Толково-словообразовательный словарь:
ТРИВИАЛЬНЫЙ (прил.)
1. Лишенный свежести и оригинальности, избитый, пошлый.
Lasciate ogni speranza, voi ch'entrate.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 17.02.2005 (Чт) 14:45

Блин, уже и пошутить нельзя... Обвинят во всех смертных грехах, а потом начнут обсуждать, как правильно пишется тривиальное слово :cry: :lol:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.02.2005 (Чт) 21:12

A.A.Z. писал(а):2 Amed:
Amed писал(а):а) тревиальная
uhm прав, ты не прав :) Проверить можно легко - зайди на [url=encycl.yandex.ru]yandex.энциклопедии[/url] и набери там "тревиальный". Получишь сообщение
"Опечатка? Возможно, имелось ввиду "тривиальный"" :roll:

Напомню, что uhm написал "тревильная". Так что неправы оба.
А линк на рассказ о том, что бывает с теми, кто прикапывается к чужой орфографии, я уже кидал...
:-)
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 17.02.2005 (Чт) 21:18

Ой, как я мог!? :(

Я знаю, дорогие друзья, что слово "тривиальная" пишется через и. Считайте это опиской.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 18.02.2005 (Пт) 10:48

БЛИН!!!
Доктор, меня никто не понимает! :evil:
Если вы внимательно посмотрите на мой пост, увидите, что некоторые слова там заключены в кавычки. А кавычки, в том числе, используются для оформления цитат. А цитировал я вот отсюда:

http://bbs.vbstreets.ru/viewtopic.php?t=1310&postdays=0&postorder=asc&start=195!

:lol:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 18.02.2005 (Пт) 11:19

Так что Amed во всем виноват ;)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 18.02.2005 (Пт) 11:27

...как всегда ;)

Как аватар? Вставляет? ;)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 18.02.2005 (Пт) 13:32

"А" чуть-чуть пожирнее надо сделать :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 136

    TopList