2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Нарисовать, двигать, сохранить линию Qt 4.8.4 С++ QtCreator
Сообщение27.10.2017, 12:46 


20/07/17

40
Можете сделать простой пример до максимально пункта какого не жалко?

1)создать массив ImageArray 300 на 300 который будет RGB изображением.
2)записать в ImageArray попиксельно через цикл For горизонтальную линию цветом(135,154,160) длинной 10 пикселей.
3)создать слайдер1,слайдер2 задают координаты ячейки в ImageArray с которой начинаем рисовать линию.
4)File save/File open/File Save As... сохраняют \ открывают значения слайдеров.
Открыли файл и рисует линию в загруженных координатах.
Когда выбираем File save/File open/File Save As видны эскизы\привью мелкой картинкой где в изображении в каждом файле красная линия 100 на 100 пикселей
Слайдеры и обновлять растеризацию ImageArray нужно не чаще 60 раз в сек по таймеру.
Или слайдер задает FPS. Будут тяжелые расчеты.

 Профиль  
                  
 
 Re: Нарисовать, двигать, сохранить линию Qt 4.8.4 С++ QtCreator
Сообщение27.10.2017, 14:01 


20/07/17

40
Сдвиг с нуля! Класс…
Код рисует линию на черном фоне:

untitled6.pro
Код:
TEMPLATE=app# тип проекта
QT+=widgets #Добавляем модуль widgets для работы с виджетами (необходимо для Qt5).
TARGET= widget #Название исполняемого файла
SOURCES=main.cpp


main.cpp
Код:
#include <QApplication>
#include <QImage>
#include <QLabel>
#include <QPixmap>

int main ( int lArgc , char *lArgv [ ] )
{
QApplication lApplication ( lArgc , lArgv ) ;
QImage image(300, 300, QImage::Format_RGB888);
//image.fill(Qt::black);//QImage уже заполняет черным
//for (auto i = 0; i < 10; ++i) // кто такой auto?
for (int i = 0; i < 10; ++i)
{
    image.setPixel(10, i, qRgb(135, 154, 160));
}
QLabel lbl;
lbl.setFixedSize(300, 300);
lbl.setPixmap(QPixmap::fromImage(image));
lbl.show();
//image.save("foo.png", "PNG); //ошибка тут
return lApplication. exec ( ) ; //Запускаем программу на выполнение exec() выполняет
}


Как подвинуть линию по X?
Исходник:
Код:
image.setPixel(10, i, qRgb(135, 154, 160));

Мод:
Код:
image.setPixel(a0, i, qRgb(135, 154, 160));

Как сделать чтобы a0 менялась от слайдера?

Можете сделать пример эта линия двигается по X от слайдера?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group