Форум программистов, компьютерный форум, киберфорум
Наши страницы

Принадлежит ли точка многоугольнику - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Матрицы http://www.cyberforum.ru/cpp-beginners/thread570402.html
Из заданной матрицы A размером N*M получить матрицу В размером M*(N+M-1) по определенному на рисунке правилу. Недостающие элементы заменить нулями.
C++ Найти сумму ряда Найти сумму ряда с точностью до члена ряда, меньшего 0.0001 для заданного значения и сравнить эту сумму с функцией контроля. Для вычисления последующего значения члена ряда использовать... http://www.cyberforum.ru/cpp-beginners/thread570395.html
C++ MPEG2 - Program Map Table
Необходимо добавить еще один PID в таблицу PMT. На этапе сохранения самой таблицы решил сравнить CRC32, и они не сходяться! Пробывал разные полиномы( 0x04C11DB7 / 0xEDB88320 / 0x82608EDB ),...
ERROR что обозначает ошибка C++
Что обозначает такие ошибки и как их справить ERROR требуется выражение ERROR требуется указать на функцию(Указатель функции) ERROR Объявленный идентификатор ERROR не вереное значение Кто...
C++ Указатели на функции http://www.cyberforum.ru/cpp-beginners/thread570355.html
Народ! Прошу у вас помощи ещё раз! Дано такое задание: С заданной точность E (Е>0) вычислить площадь заштрихованной фигуры Метод решения уравнения: Уменьшения интервала и дробления Метод...
C++ Вычислить с заданной точностью значение функции , используя ее разложение в ряд: Вычислить с заданной точностью значение функции , используя ее разложение в ряд: подробнее

Показать сообщение отдельно
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.05.2012, 13:24
Только для выпуклых:
(не рекомендуется к промышленному использованию, из-за затратности функций acos (с) википедия. )
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
    Vertex point = {-20, -50};
 
    int const n = 5;
    Vertex figure[n] = {
 
        {0,0},
        {0,100},
        {100,100},
        {150,50},
        {100,0}
 
    };
 
    double summAng = 0;
    
    for (int i=0; i<n; i++) {
 
        int next = i+1;
 
        if (next >= n) {
            next = 0;
        }
 
        double A1 = point.y - figure[i].y;
        double B1 = point.x - figure[i].x;
 
        double A2 = point.y - figure[next].y;
        double B2 = point.x - figure[next].x;
 
        summAng += 180 * acos( ((A1 * A2) + (B1 * B2)) / ( pow( B1*B1 + A1*A1, 0.5) * pow( B2*B2 + A2*A2, 0.5) ) ) / 3.14159;
 
    }
 
    if (((summAng > 359.6) && (summAng < 360.4)) ||
        ((summAng > -0.6) && (summAng < 0.4)) )
        puts("inside");
    else
        puts("Outside");
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru