Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Marathon
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 30
#1

Принадлежит ли точка выпуклому многоугольнику

30.11.2015, 12:37. Просмотров 568. Ответов 4
Метки нет (Все метки)

Добрый день. Была задана следующая задача: пользователь задает координаты вершин многоугольника, затем координаты точки.Нужно определить, попадает ли эта точка в многоугольник.среда программирования Си++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2015, 12:37
Ответы с готовыми решениями:

Принадлежит ли точка многоугольнику
Нужен такой вот алгоритм (а ещё лучше функция :) ).Поиск по форуму не увенчался...

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

Дана точка М(x, y). Присвоить z = 1, если точка принадлежит окружности с радиусом R и центром в точке (a, b) и z = 0 в противном случае.
Дана точка М(x, y). Присвоить z = 1, если точка принадлежит окружности с...

Даны отрезки [a, b] и [c, d] и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их
Даны отрезки и и точка A с координатой х. Определить, принадлежит ли данная...

Определить принадлежит точка точка координатам
Такая задача даны действительные числа x y определить принадлежит точка ...

4
Hellsing84
0 / 0 / 2
Регистрация: 30.09.2015
Сообщений: 18
30.11.2015, 12:55 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian");
    float x,y;
    cout << "Введите X: ";
    cin >> x;
    cout << "Введите Y: ";
    cin >> y;
    if ((x*x+y*y<=1) || (x<=0 && y<=0 && y+x>=-2))
        cout << "Точка в закрашенной области!\n";
    else 
        cout << "Точка не в закрашенной области!\n";
    system("pause");
}
Похожее задание
0
Геомеханик
786 / 593 / 937
Регистрация: 26.06.2015
Сообщений: 1,409
30.11.2015, 14:12 #3
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
36
37
38
#include <iostream>
 
typedef struct {
    int x, y;
} point;
 
/* принадлежность точки многоугольнику(для выпуклых)
   обход вершин по часовой стрелки */
bool PtInPolygon(const point& p, const point* d, int n){
    int r;
    --n;
    for(int i = 0; i < n; ++i) {
        r = (p.x - d[i].x)*(d[i].y - d[i + 1].y) - 
            (p.y - d[i].y)*(d[i].x - d[i + 1].x);
        if(r < 0)
            return false;
    }
    r = (p.x - d[n].x)*(d[n].y - d[0].y) - 
        (p.y - d[n].y)*(d[n].x - d[0].x);
    return (r >= 0);
}
 
int main(void){
    const int n = 4;
    point  d[n] = {
        { 200, 10  },
        { 250, 60  },
        { 200, 130 },
        { 150, 60  }
    };
    point p = { 190, 100 };
 
    if(PtInPolygon(p, d, n))
        std::cout << "Yes." << std::endl;
    else
        std::cout << "No!" << std::endl;
    return 0;
}
0
Marathon
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 30
01.12.2015, 15:27  [ТС] #4
Геомеханик, спасибо, какой метод тут используется, не подскажете, пожалуйста?

Добавлено через 14 минут
Геомеханик, к сожалению, в 6-сти угольнике определяет точку не верно

Добавлено через 20 часов 25 минут
Геомеханик, я, как понял, точка проверяется с какой стороны грани находится, но не могу понять, почему для 5 и 6 угольник не работает

Добавлено через 2 минуты
Ребята, помогите, пожалуйста, разобраться в задачке, хочется к зачету успеть
0
Marathon
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 30
02.12.2015, 16:02  [ТС] #5
Геомеханик, а можно ли против часовой стрелки?
0
02.12.2015, 16:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2015, 16:02

Принадлежит ли точка фигуре
Определить принадлежность точки областям, обозначенным прописными буквами A и...

Принадлежит ли точка кругу
Для построения круга дают центр круга, дают радиус. Потом дают точку и...

Принадлежит ли точка четырехугольнику.
Надеюсь на помощь форумчан: Задача следующяя: задана коодинатами точек...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru