Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 37
1

Как правильно передать вектор в функцию и вызвать эту функцию?

28.08.2018, 20:56. Показов 2058. Ответов 20

Author24 — интернет-сервис помощи студентам
Здравствуйте, объясните как исправить ошибку. Возникает после for(), выдается, что размер polygon = 0. Вот так функции объявлены в классе:

C++ (Qt)
1
2
void CreatePolygon();
int PointInPoly(QPolygon &polygon, int n, int x, int y);
Вот вызов функции:
C++ (Qt)
1
2
3
4
5
6
void MyGraphicView::TestIntersection(QPolygon& polygon)
{
    PointInPoly(polygon, 2, x, y);
 
    QDialog dlg(this);
    dlg.setWindowTitle(tr("My dialog"));}
C++ (Qt)
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
void MyGraphicView::CreatePolygon()
{
    QPolygon polygon;   // Используем класс полигона, чтобы отрисовать треугольник
                        // Помещаем координаты точек в полигональную модель
    polygon
        << QPoint(0, 85) << QPoint(75, 75)
        << QPoint(100, 10) << QPoint(125, 75)
        << QPoint(200, 85) << QPoint(150, 125)
        << QPoint(160, 190) << QPoint(100, 150)
        << QPoint(40, 190) << QPoint(50, 125)
        << QPoint(0, 85);
    scene->addPolygon(polygon);
 
}
 
int MyGraphicView::PointInPoly(QPolygon& polygon, int n, int x,int y) //n - количество углов
{
    for(int i=0;i<n;i++)
    { 
        if ((x > polygon.at(n).x()) && ((y > polygon.at(n).y())))
        {
            //точка находится вне области
        }
 
        if ((x > polygon.at(n).x()) || ((y > polygon.at(n).y())))
        {
            //точка находится в области
        }
 
        if ((x = polygon.at(n).x()) && ((y = polygon.at(n).y())))
        {
            //точка находится в области
        }
    }
    return 1;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2018, 20:56
Ответы с готовыми решениями:

Как правильно передать параметр в функцию?
Есть вот такой код. В качестве примера пытаюсь вызвать метаметод layout() у наследника от QWidget...

Как в функцию передать функцию, которая будет слотом?
Как в функцию передать функцию, которая будет слотом? То, что написано в интернете и тут...

Как правильно передать вектор по ссылке?
#include &lt;iostream&gt; #include &lt;vector&gt; using namespace std;...

Как вызвать c++ функцию?
всем привет, уже перечиал кучу статей и примеров по qt, но нигде так и не увидел примера того как...

20
59 / 49 / 19
Регистрация: 16.06.2015
Сообщений: 206
29.08.2018, 11:27 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от terriblemike Посмотреть сообщение
polygon.at(i).x()
тут ошибся...
надо
C++ (Qt)
1
polygon.point(i).x();
0
29.08.2018, 11:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2018, 11:27
Помогаю со студенческими работами здесь

Как вызвать функцию в дочерней форме
Создаю в основной форме новую форму через NewForm *newForm = new NewForm(this); newForm-&gt;show();...

Как вызвать функцию в Qt с переменной, которая берется из другой формы?
Есть две формы (firstForm и MainWindow). В firstForm присутствует SpinBOX, из которого мне нужно...

Как передать указатель на виджет в функцию?
Добрый день, Подскажите пожалуйста, можно ли передать виджет в функцию? void...

Как в Qt передать указатель на CallBack функцию WinAPI ? :-)
Есть ли в Qt такое понятие как CallBack или нет? Конечно же тут проскакивает аналогия со слотом,...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru