С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
1 / 1 / 1
Регистрация: 23.03.2015
Сообщений: 87

Задача о принадлежности точки многоугольнику

06.10.2016, 05:12. Показов 6143. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите понять как реализовать метод суммирования углов.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.10.2016, 05:12
Ответы с готовыми решениями:

Программа о принадлежности точки выпуклому многоугольнику
Всем привет! Кому не трудно, объясните пожалуйста следующую программу- принадлежит ли точка заданному выпуклому многоугольнику. Очень надо...

Принадлежность точки любому многоугольнику
Не подскажите нормальный алгоритм определения принадлежности точки многоугольнику на С++

Определение принадлежности точки к многоугольнику
Добрый день/вечер. Имеются координаты многоугольника в Яндекс картах, они считываются программой написанной на Делфи. Возникает...

3
Объявлятель переменных
 Аватар для SpBerkut
1225 / 411 / 321
Регистрация: 24.09.2011
Сообщений: 1,279
06.10.2016, 11:40
Многоугольник выпуклый или произвольный?
0
1 / 1 / 1
Регистрация: 23.03.2015
Сообщений: 87
06.10.2016, 14:29  [ТС]
Произвольный
0
Объявлятель переменных
 Аватар для SpBerkut
1225 / 411 / 321
Регистрация: 24.09.2011
Сообщений: 1,279
06.10.2016, 16:00
Вроде так. На приложенном изображении визуализация результата работы. Проверял попадание в многоугольник пересечений голубых линий. Зелёным цветом отмечены верные попадания. Фиолетовыми — точки на границе многоугольника, которые посчитались как внутренние.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <cmath>
 
struct point {double x,y;};
 
double getAzimuth(const point o, const point p) {
    return atan2(p.y-o.y,p.x-o.x);
}
 
double getAngle(const point o, const point a, const point b) {
    double result = getAzimuth(o,b) - getAzimuth(o,a);
    if (result > M_PI) result -= 2*M_PI;
    if (result < -M_PI) result += 2*M_PI;
    return result;
}
 
bool isInside(point *P, const point p, unsigned n) {
    double sum = getAngle(p,P[n-1],P[0]);
    while (--n) {
        sum += getAngle(p,P[n-1],P[n]);
    }
    return fabs(sum)>1e-10;
}
 
int main()
{
    point   P[] = {{1,0},{2,3},{3,1},{2,6},{0,3}};
    for (double i = 0; i < 4; i+=0.5) {
        for (double j = 0; j < 7; j+=0.5) {
            if (isInside(P,{i,j},5)) {
                std::cout << i << " " << j << '\n';
            }
        }
    }
}
Миниатюры
Задача о принадлежности точки многоугольнику  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2016, 16:00
Помогаю со студенческими работами здесь

Определение принадлежности точки многоугольнику
Объясните что такое метод суммирования углов. Или просто Метод углов

Разработать программу, которая решает задачу принадлежности точки многоугольнику с помощью метода "Учет числа оборотов"
Здравствуйте, мне необходимо разработать программу которая решает задачу принадлежности точки многоугольнику с помощью метода &quot;Учет...

Алгоритм проверки принадлежности линии к многоугольнику
Подскажите алгоритмы проверки принадлежности линии к многоугольнику (невыпуклом,выпуклом) (можна даже не реализованы) в которих можна было...

Задача на определение принадлежности точки области
Для каждой задачи составить программу, содержащую ветвления и определяющую, принадлежит ли точка с координатами (X, Y) заштрихованной...

Задача на определение принадлежности точки области
Нужно составить программу,содержащую ветвления и определяющую,принадлежит ли точка с координатами (x,y) заштрихованной области.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru