Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677

Даны координаты вершин N-угольника, определить все целочисленные точки, лежащие внутри него

15.07.2014, 13:05. Показов 3057. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите максимально быстрый алгоритм.
Есть координаты точек N-угольника. Как рассчитать координаты всех точек, которые ему принадлежат?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2014, 13:05
Ответы с готовыми решениями:

Даны координаты вершин треугольника и координаты некоторой точки внутри него
Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны...

Даны координаты вершин много угольника
Даны координаты вершин много угольника (x1,y1,x2,y2,...,x10,y10).Напишите программу для вычисления его перемитра (вычисление расстояния...

Как все невостребованные точки, лежащие внутри треугольника, зарисовать синим цветом?
Я нарисовал треугольник в плоскости из точек. Как все невостребованные точки, лежащие внутри треугольника, зарисовать синим цветом.

15
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
15.07.2014, 13:11
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Есть координаты точек N-угольника
что такое "точки N-угольника"??? Вершины что ли? Ты о чём вообще? Говори по-русски!!
Цитата Сообщение от Retyrn0 Посмотреть сообщение
точек, которые ему принадлежат?
В смысле принадлежат? Опять-таки, вершины что ли? - Они даны... Или точки внутри/на сторонах полигона? Ну так их по координатам не перечислишь - их бесконечно много! Детский сад...
0
52 / 60 / 24
Регистрация: 03.09.2010
Сообщений: 1,242
15.07.2014, 13:14
Ну я так понимаю что даны координаты вершин N-угольника и даны еще координаты M точек, надо проверить лежат ли они внутри фигуры. Так было бы логичнее всего, но это всего-лишь догадки -) Условие не является корректным.
0
20 / 20 / 3
Регистрация: 14.06.2012
Сообщений: 95
15.07.2014, 13:51
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Как рассчитать координаты всех точек
OpenGL вскройте, там есть отличный алгоритм по этому поводу (в тему о быстрой(!!!) геометрии)
Но если речь идёт о
Цитата Сообщение от flash1989 Посмотреть сообщение
даны координаты вершин N-угольника и даны еще координаты M точек, надо проверить лежат ли они внутри фигуры.
то в таком случае решений не просто много, их огромное количество. И все они разработаны почти под любой уровень подготовки.
Поищите "Point Location Problem", "метод трассировки луча", "метод суммирования углов" (это как одни из самых распространённых и простых), есть ещё и кустарные методы, но приведённые ранее Вам подойдут.
0
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
15.07.2014, 19:08  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
что такое "точки N-угольника"??? Вершины что ли? Ты о чём вообще?
Да, вершины. Прошу прощения, мозг кипит.
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Или точки внутри/на сторонах полигона
Именно.
Цитата Сообщение от flash1989 Посмотреть сообщение
надо проверить лежат ли они внутри фигуры
Нет. Нужно как раз получить координаты всех точек, из которых состоит многоугольник, а известны только вершины.
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,238
15.07.2014, 19:12
Цитата Сообщение от Retyrn0 Посмотреть сообщение
получить координаты всех точек, из которых состоит многоугольник
Их несчетное множество.
1
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
15.07.2014, 19:13  [ТС]
Цитата Сообщение от IIARTEMII Посмотреть сообщение
OpenGL вскройте
В каком смысле вскрыть?) Нельзя мне никакие библиотеки использовать, специфика не позволяет.

Добавлено через 49 секунд
Цитата Сообщение от zss Посмотреть сообщение
Их несчетное множество.
Мы же в разделе программирования?) Меня интересуют все целочисленные результаты
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
15.07.2014, 19:18
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Мы же в разделе программирования?) Меня интересуют все целочисленные результаты
по-твоему, это очевидно и следует из того, что мы в разделе программирования?
0
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
15.07.2014, 19:26
дан многоугольник, состоящий из N вершин, определить все целочисленнеы точки, лежащие внутри моногоугольника. А зачем тогда M? многоугольник выпуклый? без самопересечений и самокасаний?
0
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
15.07.2014, 21:19  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
по-твоему, это очевидно и следует из того, что мы в разделе программирования?
То, что мне не нужно бесчисленное множество точек - вполне понятно из того, что мы в разделе программирования, ибо ресурсы компьютеров пока конечны.
Цитата Сообщение от SlavaSSU Посмотреть сообщение
А зачем тогда M? многоугольник выпуклый? без самопересечений и самокасаний?
Про М - это не я писал) Многоугольник не выпуклый - плоскость. Без самопересечений, без самокасаний
0
20 / 20 / 3
Регистрация: 14.06.2012
Сообщений: 95
15.07.2014, 21:22
Retyrn0, Ваша задача решается теми методами, о которых я выше написал. Составляете таблицу точек (координаты) и прогоняете через алгоритм - на выходе получаете принадлежность точек многоугольнику

Добавлено через 1 минуту
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Многоугольник не выпуклый - плоскость
уточните, пожалуйста, не квадрат/прямоугольник ли это
0
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
15.07.2014, 21:44  [ТС]
Цитата Сообщение от IIARTEMII Посмотреть сообщение
не квадрат/прямоугольник ли это
Произвольно-угольник) Квадрат и прямоугольник в том числе.
Цитата Сообщение от IIARTEMII Посмотреть сообщение
на выходе получаете принадлежность точек
Я рассчитывал, что алгоритм сам создаст таблицу именно тех точек, которые принадлежат многоугольнику. Пересчитывать точки, которые не удовлетворяют условию, ИМХО расточительно.

Добавлено через 3 минуты
Чтобы было понятно наверняка - аналогия: заливка в пэинте. Мы соединяем точки линиями - получаем многоугольник. Заливка срабатывает только на те пикселы, которые находятся внутри многоугольника.
0
20 / 20 / 3
Регистрация: 14.06.2012
Сообщений: 95
15.07.2014, 22:05
Короче, тупо забиваете цикл по i и j (i = OY, j = OX), итерируете, заводите функцию, которая пробегает один раз вправо до упора (понимайте это, как выпуск из точки (i; j) луча), считаете сколько раз вы пересекли границу многоугольника - если нечетное, то точка принадлежит ему и записываете координаты в таблицу, если четное - идёте дальше.
Алгоритм сам за Вас эти точки составит, сам проверит, сам занесёт в таблицу.
Единственное - нужно реализовать функцию, которая будет линию по двум точкам строить и потом проверять пересечение луча с ней

Добавлено через 2 минуты
Я думаю, Вы понимаете, что нужно продумать пересечение нашего "луча" с вершиной и совпадение его с линией
1
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
15.07.2014, 22:15  [ТС]
Цитата Сообщение от IIARTEMII Посмотреть сообщение
Короче, тупо забиваете цикл по i и j (i = OY, j = OX), итерируете, заводите функцию, которая пробегает один раз вправо до упора (понимайте это, как выпуск из точки (i; j) луча), считаете сколько раз вы пересекли границу многоугольника - если нечетное, то точка принадлежит ему и записываете координаты в таблицу, если четное - идёте дальше.
Алгоритм сам за Вас эти точки составит, сам проверит, сам занесёт в таблицу.
Единственное - нужно реализовать функцию, которая будет линию по двум точкам строить и потом проверять пересечение луча с ней
Добавлено через 2 минуты
Я думаю, Вы понимаете, что нужно продумать пересечение нашего "луча" с вершиной и совпадение его с линией
Как раз остановился на таком методе.) Думал, может математически чего круче есть. Конечно понимаю. Спасибо.
0
221 / 166 / 47
Регистрация: 17.07.2012
Сообщений: 587
16.07.2014, 05:39
Retyrn0, а это подходит? http://e-maxx.ru/algo/pick_grid_theorem

Добавлено через 7 минут
Retyrn0, Блин я туплю, не успел исправить. Тебе же нужны координаты точек...
1
45 / 48 / 5
Регистрация: 24.06.2013
Сообщений: 677
16.07.2014, 12:36  [ТС]
Цитата Сообщение от SlavaSSU Посмотреть сообщение
Блин я туплю, не успел исправить. Тебе же нужны координаты точек...
Грубо говоря, проект 3-д графики. Мир состоит из плоскостей - многоугольников. У многоугольника есть координаты вершин и цвет заливки. Конечная цель - по возможности исключить лишние операции...ну там есть некоторая идея, буду пробовать реализовать.

Добавлено через 1 минуту
Мне в принципе не нужны все координаты. Я думаю спроецировать вершины на плоскость камеры и в ней считать только целочисленные координаты. Проблема состоит в том, что нельзя использовать сторонние библиотеки.

Добавлено через 40 секунд
Цитата Сообщение от SlavaSSU Посмотреть сообщение
а это подходит
Всё равно спасибо, может и пригодится)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2014, 12:36
Помогаю со студенческими работами здесь

Даны координаты четырех вершин. Определить вид четырехугольника
Даны координаты четырех вершин. Определить, является ли этот четырехугольник: 1 программа - трапецией 2 программа параллелограммом 3...

Даны координаты вершин треугольника и координаты некоторой точки внутри него
Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны...

Даны координаты вершин треугольника, и точки М внутри него, вывести минимальное расстояние от точки М до одной их сторон
всем привет,нужна ваша помощь. задача: даны координаты вершин треугольника, и точки М внутри треугольника, вывести минимальное расстояние...

Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны треугольника
Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны...

Даны целочисленные координаты трех вершин прямоугольника, найти координаты четвертой
Даны целочисленные координаты трех вершин прямоугольника, стороны которого параллельны координатным осям. Найти координаты его четвертой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru