![]() |
|
|
![]()
|
|
| loster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 3.7.2009 Репутация: нет Всего: нет |
Задан произвольный n-угольник через массив точек(x,y) с обходом против часовой стрелки
Нужно написать алгоритм, опреляющий для любой точки - является ли эта точка выпуклостью многоугольника |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| loster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 3.7.2009 Репутация: нет Всего: нет |
Ну может не совсем правильно выразился. Имеется ввиду следующее:
Если внутренние углы при всех вершинах многоугольника меньше 180 градусов, то такой многоугольник называется выпуклым Выпуклость соответсвенно - вершина при которой угол меньше 180 градусов ![]() на рисунке многоугольник, все вершины кроме одной - выпуклые Мне дан массив точек многоугольника, надо выяснить какие из них являются выпуклостями а какие нет. Долго думал, но так и не нашёл путь к постороению алгоритма |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Закрасить. Если угол с крашеной стороны меньше - выпуклость, иначе впуклость.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| loster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 3.7.2009 Репутация: нет Всего: нет |
хм, а как высчитать угол, если у меня есть координаты?
И вообще-то желательно определять выпуклость с помощью какой-нибудь математической модели, поэтому и запостил в "алгоритмы" upd вспомнил, что угол можно найти через векторное произведение, буду пробовать) Это сообщение отредактировал(а) loster - 11.9.2010, 00:10 |
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
закраска будет довольно накладной, мне кажется. И как например закрашивать многоугольник с дробными координатами?
если многоугольник без самопересечений, то точки принадлежащие многоугольнику будут по одну сторону от границ при данном направлении обхода, вот тут можно и скалярное произведение векторов применять Добавлено через 5 минут и 39 секунд в самопересекающемся, область многоугольника можно так же задать положением относительно границ, тут только при пересечении границы будет меняться расположение области многоугольника на противоположное |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
Ну у тебя есть два отрезка с общей точкой, угол в которой и требуется определить.
Задача решена здесь: http://irodov.nm.ru/cgi-bin/ikonboard/topi...=7&topic=33 Код:
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |