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

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

15.07.2014, 13:05. Показов 3095. Ответов 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,532
Записей в блоге: 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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
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,532
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru