Форум программистов, компьютерный форум 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 Я с простыми интегралами то плохо дружу, а их ещё как то реализовать в... подробнее

Показать сообщение отдельно
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,056
Записей в блоге: 10
Завершенные тесты: 1
12.05.2012, 11:32     Принадлежит ли точка многоугольнику
Цитата Сообщение от Gepar Посмотреть сообщение
для прямоугольников как лучше всего определять принадлежит ли им точка ? Тоже разбивать на два треугольника или есть методы получше?
Не надо тут ничего разбивать.
C
1
2
3
4
5
6
int inrect( int rect[][2], int x, int y )
{
    if ( x < rect[0][0] || x > rect[1][0] ||
         y < rect[0][1] || y > rect[1][1] ) return 0;
    return 1;
}

Цитата Сообщение от Gepar Посмотреть сообщение
Что-то не получается у меня этот метод треугольников на многоугольнике применить. Помогите пожалуйста кодом функции.
Быстрее метода не нашел:
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
39
40
int inpoly( unsigned int poly[][2], int npoints, unsigned int xt, unsigned int yt )
{
    int             i;
    int             inside = 0;
    unsigned int    xnew, ynew;
    unsigned int    xold, yold;
    unsigned int    x1, y1;
    unsigned int    x2, y2;
 
    if ( npoints < 3 ) return 0;
 
    xold = poly[npoints - 1][0];
    yold = poly[npoints - 1][1];
 
    for ( i = 0; i < npoints; i++ ) {
 
        xnew = poly[i][0];
        ynew = poly[i][1];
 
        if ( xnew > xold ) {
            x1 = xold;
            x2 = xnew;
            y1 = yold;
            y2 = ynew;
        } else {
            x1 = xnew;
            x2 = xold;
            y1 = ynew;
            y2 = yold;
        }
 
        if ( (xnew < xt) == (xt <= xold) &&
             ((long)yt - (long)y1) * (long)(x2 - x1) <
             ((long)y2 - (long)y1) * (long)(xt - x1) ) inside = !inside;
 
        xold = xnew;
        yold = ynew;
    }
    return inside;
}
 
Текущее время: 19:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru