Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/47: Рейтинг темы: голосов - 47, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 70

Рисование точек по координатам

22.01.2016, 10:55. Показов 9529. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Хочу сделать некий виджет, как локатор....т.е начерчены окружности, посылаешь координаты и рисуются точки(их много).
Кружки то я нарисовал, а вот как правильно задать обработку координат и рисование точек не понимаю.
что есть:
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
37
38
39
40
41
42
43
44
45
Ring::Ring( QWidget *parent ) :
    QWidget( parent )
{
    dot_1 =1;
    dot_2 =1;
    dot_3 =1;
 
    // Устанавливаем кодеки
    QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "UTF-8" ) );
    QTextCodec::setCodecForTr( QTextCodec::codecForName( "UTF-8" ) );
 
    resize(300, 300);
}
 
void Ring::paintEvent(QPaintEvent *){
 
 int side = qMin(width(), height());
 
 QPainter painter(this);
 painter.setRenderHint(QPainter::Antialiasing);
 painter.translate(width() / 2, height() / 2);
 painter.scale(side / 300.0, side / 300.0);
 
 painter.setPen(Qt::NoPen);
 painter.save();
 
 painter.restore();
 
 painter.setPen(QPen(Qt::black,1,Qt::SolidLine));
 painter.drawEllipse(-50,-50,100,100);
 
 painter.setPen(QPen(Qt::black,1,Qt::SolidLine));
 painter.drawEllipse(-100,-100,200,200);
 
 painter.setPen(QPen(Qt::black,1,Qt::SolidLine));
 painter.drawEllipse(-150,-150,300,300);
 
 painter.drawLine(0,150,0,-150);
 painter.drawLine(-150,0,150,0);
 
 painter.setPen(QPen(Qt::black,2,Qt::SolidLine));
 painter.drawPoint(dot_1,dot_2);
 
 
}
Заголовочный
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
#include <QWidget>
 
class Ring : public QWidget
{
    Q_OBJECT
public:
    Ring( QWidget *parent = 0 );
 
    void setDot(int x, int y, int signal )
    {
        dot_1 = x;
        dot_2 = y;
        dot_3 = signal;
 
        //update();
    }
 
private:
 
int dot_1, dot_2, dot_3;
 
signals:
 
protected:
     void paintEvent( QPaintEvent *event );
    
public slots:
    
};
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2016, 10:55
Ответы с готовыми решениями:

Рассчитать площадь N-угольник по координатам точек
В приложении есть возможность ставить точки курсором мыши. После того как пользователь поставил столько точек, сколько ему нужно, при...

Рисование точек на графике в качестве неких объектов
Снова доброй ночи, уважаемый форум. Задача стоит следующая: существует массив типа complex&lt;double&gt; хранящий в себе координаты точек...

Рисование множества точек при получении пакета с сети
Здравствуйте! Такая проблема - приходят данные по сети с широковещательного сообщения. При получении пакета, нужно нарисовать точку, причем...

40
 Аватар для icpu
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
26.01.2016, 13:47
Студворк — интернет-сервис помощи студентам
GoldSieg, если вы нашли файл, в котором, похоже, есть что-то похожее на вашу структуру, это не значит, что вы сделали всё правильно. Если перейти на аналогии, далеко не все коричнивые комочки являются пироженным "картошка".
Вы должны либо вынести структуру в отдельный файл и подключать ко всем заинтересованным, либо использовать предварительное объявление. Конкретно у вас ошибка в том, что вы снесли к чертям нормальный конструктор и вставили мой. И у меня кончается терпение вам всё разжёвывать. Потому что вы, не зная основ полезли в дебри. И вам нужно всё по три раза объяснять. А вы всё равно ничего не поймёте без основ. БЛДЖАД!

Класс Ring - наследник класса QWidget. Это означает, что он наследует все члены и методы класса, со всеми их требованиями. Одно из них - в том, чтобы классу QWidget передавали указатель на объект родителя в конструкторе. то есть должна быть explicit Ring(QVector<MyPoint*> * p=0, QWidget *parent = 0 ); и соответствующая реализация. Конкретнее, Ring::Ring(QVector<MyPoint*> * p=0, QWidget *parent = 0 ) : QWidget (parent ) {/*Что там у вас в конструкторе.*/}

Все файлы ui_ и _moc, которые вы найдёте являются автоматически генерируемыми, они подключаются автоматически и их, в общем, лучше не трогать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2016, 13:47
Помогаю со студенческими работами здесь

Рисование Рисование точек по координатам
Доброе время суток. Помогите мне наглядным примером. У меня есть массив координат a х у 1 2 3 4 1 3 кпримеру, мне нужно...

Рисование точек по координатам массива
у меня два массива, один хранит x, а другой y. я даже не знаю какую форму надо выбирать (canvas, image или что-то ещё), и какое нужно...

Как нарисовать много точек, если в классе Graphics рисование точек не предусмотрено вообще?
Делаю свой граф. редактор. В нем нужно линии строить так, чтобы они состояли из точек. DrawPoint в классе Graphics нет, как быть? если...

Рисование по координатам
Здравствуйте, мне нужно ввести две координаты X и Y и должна нарисоваться линия.Как это можно реализовать?

3d рисование по координатам
Добрый вечер! Мне необходимо нарисовать в 3д множество точек, зная координаты каждой точки (x,y,z). В WPF все рисуется с помощью...


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

Или воспользуйтесь поиском по форуму:
41
Ответ Создать тему
Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru