|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
Принадлежит ли точка многоугольнику10.05.2012, 18:01. Показов 33059. Ответов 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 | |
|
Помогаю со студенческими работами здесь
60
Определить принадлежит точка точка координатам Принадлежит ни точка кольцу (на C) Принадлежит ли точка прямоугольнику? Принадлежит ли точка графику Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|