Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрицы http://www.cyberforum.ru/cpp-beginners/thread570402.html
Из заданной матрицы A размером N*M получить матрицу В размером M*(N+M-1) по определенному на рисунке правилу. Недостающие элементы заменить нулями.
Visual C++ Генерация разноцветных эллипсов, которые двигаются по экрану (MFC) помогите мне кто силен с данной библиотекой MFC написать программу которая генерирует на экране разноцветные эллипсы, которые двигаются по экрану. при столкновении с краями эллипс разрушается http://www.cyberforum.ru/cpp-beginners/thread570398.html
Найти сумму ряда C++
Найти сумму ряда с точностью до члена ряда, меньшего 0.0001 для заданного значения и сравнить эту сумму с функцией контроля. Для вычисления последующего значения члена ряда использовать рекуррентную формулу.
C++ MPEG2 - Program Map Table
Необходимо добавить еще один PID в таблицу PMT. На этапе сохранения самой таблицы решил сравнить CRC32, и они не сходяться! Пробывал разные полиномы( 0x04C11DB7 / 0xEDB88320 / 0x82608EDB ), считаю с table id и до конца пока не заканчивается таблица, уже не знаю в чем может быть ошибка. Делаю по следующему алгоритму unsigned long crc32( unsigned char *buf, size_t len, size_t pol ) { ...
C++ ERROR что обозначает ошибка http://www.cyberforum.ru/cpp-beginners/thread570361.html
Что обозначает такие ошибки и как их справить ERROR требуется выражение ERROR требуется указать на функцию(Указатель функции) ERROR Объявленный идентификатор ERROR не вереное значение Кто знает как такие ошибки исправлять ?
C++ Указатели на функции Народ! Прошу у вас помощи ещё раз! Дано такое задание: С заданной точность E (Е>0) вычислить площадь заштрихованной фигуры Метод решения уравнения: Уменьшения интервала и дробления Метод вычисления интегралов: Трапеций И дана вот такая фиговина: http://www.fotolink.su/v.php?id=75586708e5eea25c5797d657e91c6242 Я с простыми интегралами то плохо дружу, а их ещё как то реализовать в... подробнее

Показать сообщение отдельно
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
11.05.2012, 12:15  [ТС]     Принадлежит ли точка многоугольнику
Цитата Сообщение от Toshkarik Посмотреть сообщение
const double *const *const arr
what the ... ?
константный указатель на вещественную константу указывающую на константу ?

Добавлено через 15 минут
Цитата Сообщение от Toshkarik Посмотреть сообщение
Единственно не учитываются точки лежащие на ребрах. Можно попробовать изменить условие на
Если его так изменить тогда и то что ниже будет говорить что точка многоугольника, пример:
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
int main()
{
    const int size=4;
    double **arr = new double *[ size ];
    for(int i=0;i<size;i++)
     arr[i]= new double[2];
 
    arr[0][0] = 0;
    arr[0][1] = 100;
 
    arr[1][0] = 100;
    arr[1][1] = 100;
 
    arr[2][0] = 100;
    arr[2][1] = 0;
 
    arr[3][0] = 0;
    arr[3][1] = 0;
 
 
    int pointX = 0;
    int pointY = -2;
 
 
    if ( func( arr, size, pointX, pointY ))
    std::cout << "yep";
    else
    std::cout << "nop";
}
Если в intersection будет
C++
1
if ( 0 <= Ub && Ub < 1 && Ua >= 0 )
то выдаст yep.

Прошёлся мейном по углам кодом Toshkarik (с вариантом не учитывающим точки лежащие на ребре, любопытно получилось. Все точки что я задавал должны принадлежать прямоугольнику, ну а в виде комментариев я дописал что выдаёт алгоритм
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
    arr[0][0] = 0;
    arr[0][1] = 100;
 
    arr[1][0] = 100;
    arr[1][1] = 100;
 
    arr[2][0] = 100;
    arr[2][1] = 0;
 
    arr[3][0] = 0;
    arr[3][1] = 0;
 
    //нет
    int pointX = 0;
    int pointY = 0;
 
    //да
    int pointX = 100;
    int pointY = 100;
 
    //да
    int pointX = 0;
    int pointY = 100;
 
    //нет
    int pointX = 100;
    int pointY = 0;
Тоесть для прямоугольника все точки от 0,0 до 100,0 включительно ошибочно не входят в многоугольник. Буду рад если Toshkarik сможет допилить свой алгоритм.
 
Текущее время: 23:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru