|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
Принадлежит ли точка многоугольнику10.05.2012, 18:01. Показов 33794. Ответов 86
Метки нет (Все метки)
Нужен такой вот алгоритм (а ещё лучше функция
).Поиск по форуму не увенчался успехом (темы есть , но кода нет). Вершины многоугольника не пересекаются. Помогите пожалуйста.
0
|
|
| 10.05.2012, 18:01 | |
|
Ответы с готовыми решениями:
86
Принадлежит ли точка выпуклому многоугольнику Определить, принадлежит ли точка многоугольнику по координатам в координатной плоскости
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||
| 10.05.2012, 23:30 | ||||||
|
Итак как это будет выглядеть на псевдокоде:
1
|
||||||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
| 10.05.2012, 23:32 | ||||||
|
а ларчик то просто открывался
:
0
|
||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
| 10.05.2012, 23:45 [ТС] | |
|
OstapBender, что-то я в вашем коде потерялся: почему 3х мерное пространство? почему LinesIntersect принимает 4 координаты? Что в main вообще происходит? Почему часть кода си, а часть с++ (printf,а рядом потоки cin/cout)? Похоже что в main часть каких-то вычислений ещё, но почему они в main, а не в функциях по вычислениях.
Добавлено через 3 минуты Toshkarik, наверное всё же нужна функция. Помогите с её написанием пожалуйста. Я вижу я уже окончательно запутался со всеми этими методами обходов вершин многоугольников ...
0
|
|
|
30 / 30 / 12
Регистрация: 15.11.2009
Сообщений: 148
|
||||||
| 10.05.2012, 23:47 | ||||||
|
Gepar, я немного поправил код, но понял ошибку. Когда я писал, я думал, что координаты вершин в массиве хранятся последовательно. Щас еще что-нибудь написать попробую
Пока код нерабочий. Попробую упорядочить массив вершин
0
|
||||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||
| 10.05.2012, 23:57 [ТС] | ||
|
0
|
||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|||||
| 10.05.2012, 23:59 | |||||
|
Gepar, 3-х мерная тока структура Vertex, 3-ю координату я не использую..
там требуется изменить только список вершин и точку . Добавлено через 1 минуту
0
|
|||||
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||
| 11.05.2012, 00:16 [ТС] | |||
|
Добавлено через 9 минут
0
|
|||
|
30 / 30 / 12
Регистрация: 15.11.2009
Сообщений: 148
|
|
| 11.05.2012, 00:22 | |
|
ПЛЯЯЯЯЯЯЯЯ!! Тока допер, что нельзя однозначно по точкам задать многоугольник.
Что делать-то теперь? ![]() Кто не верит - ручка, листик, точки и обводим как хотим, вариант не вседа единственный как я понял, вариант единственнен только для выпуклых фигур, мафака !!
0
|
|
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
| 11.05.2012, 00:26 [ТС] | |
|
ser4ega, почему это? Вполне можно же , каждая точка сводится с предыдущей. Последняя сводится с первой. То что они не пересекаются задано условием. Всё ок с рисованием многоугольника, не ок с определением вхождения точки ...
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 11.05.2012, 00:28 | |
|
0
|
|
|
30 / 30 / 12
Регистрация: 15.11.2009
Сообщений: 148
|
|
| 11.05.2012, 00:32 | |
|
я это к тому, что теперь реально важен порядок следования точек в массиве
0
|
|
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||
| 11.05.2012, 00:33 [ТС] | ||
|
1 -> 2 ->3 -> 4 ->5 ->6 -> 1. Другое дело неизвестно как они будут на плоскости выглядеть. Может быть 2 и 3 будут левее 1, а может быть правее, но это не столь важно, важно что все эти линии пересекаться не будут. *ухожу спать. Присоединюсь к дальнейшим поискам завтра утром под 9:00. Буду рад если участники сегодняшней беседы заглянут в тему и завтра, ато на данный момент вопрос ещё окончательно не решён. Например я не знаю что делать с этими +500 и -500 в коде OstapBender. ведь точка может быть и сразу типа 999500, но не могу же я задать её вида 999999 для всех-всех точек, это будет не рационально для точек вида 10, 20 да 100,50. Вызывать каждый раз max для всех точек многоугольника чтобы определить самую большую координату тоже не очень то хорошо так как это тоже занимает время ... ну да завтра нужно будет решиться со всем этим.
0
|
||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 11.05.2012, 00:48 | |
|
Gepar, а вот и не угадал.
задашь 999999 и всё будет ок. Добавлено через 46 секунд на то он и бесконечный луч)
1
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||
| 11.05.2012, 01:04 | ||||||
|
Вот что то попробовал сделать, попробуйте пожалуйста, самому интересно, сработает или нет:
Бесконечность луча в данном случае абстрактна. Ее можно принять как равную максимальной Y-координате одной из вершин отрезка, с которым мы ищем пересечение. В моем коде у луча X-координата не изменяется, мы его делаем параллельным оси X, а за "конец" луча берется максимальная Y-координата отрезка, с которым ищем пересечение.
1
|
||||||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 11.05.2012, 01:05 | |
|
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||
| 11.05.2012, 01:06 | ||
|
0
|
||
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 11.05.2012, 01:08 | |
|
Toshkarik, ну приведи пример чтоли
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 11.05.2012, 01:10 | |
|
В функции же используется. Какой еще нужен пример?
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 11.05.2012, 01:11 | |
|
Toshkarik, пример вызова функции.
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||
| 11.05.2012, 01:13 | ||||||
|
Массив может быть объявлен где угодно вот так:
0
|
||||||
| 11.05.2012, 01:13 | |
|
Определить принадлежит точка точка координатам Принадлежит ни точка кольцу (на C) Принадлежит ли точка прямоугольнику? Принадлежит ли точка графику Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|