Форум программистов, компьютерный форум, киберфорум
Наши страницы

Qt

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
handkock
4 / 2 / 0
Регистрация: 15.10.2013
Сообщений: 94
#1

Как повернуть изображение - C++ Qt

27.03.2014, 20:53. Просмотров 2163. Ответов 16
Метки нет (Все метки)

Имеется объект типа QImage, мне требуется его повернуть.
Вот код
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter>
#include <QImage>
#include <QBrush>
#include <QTimer>
#include "road.h"
 
 
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    x=0;y=0;
     x0=150;
     y0=0;
    QTimer *timer=new QTimer(this);
    connect(timer,SIGNAL(timeout()),this,SLOT(update()));
    timer->start(1);
 
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
 
 
void MainWindow::paintEvent(QPaintEvent *){
    QPainter painter(this);
    QBrush b; 
    
    b.setTextureImage(image);
    painter.setBrush(b);
    painter.drawRect(contentsRect());
    coop a[4];
    for(int i=0; i<4; i++){
    a[i]=roadtorome.draw(painter,i);}
    //qDebug("%d,%d,%d,%d",x,y,x0,y0);
    if(x0==a[0].x && y0==a[0].y)
    {
      //Поворачивает с севера на восток
    }
    if(x0==a[1].x && y0==a[1].y)
    {
      //Поворачивает с запада на север
    }
    if(x0==a[2].x && y0==a[2].y)
    {
      //Поворачивает с юга на запад
    }
    if(x0==a[3].x && y0==a[3].y)
    {
      //Поворачивает с востока на север
    }
    painter.drawImage(x0+roadNS.width()/2-tank.width()/2,y0,tank);
 
}
void MainWindow:: update(){
    y0++;
   repaint();
}
В MainWindow рисуется дорога, и танчик, которые двигается при помощи изменения его y-координаты в update. Дам пояснения, если надо. Заранее благодарен
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 20:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как повернуть изображение (C++ Qt):

Повернуть картинку на label'e - C++ Qt
Помогите повернуть картинку которая находится на лейбле QPixmap img(&quot;:/picture.png&quot;); QLabel *lab = new QLabel; QWidget...

[Решено] Повернуть заголовки вкладок QTabWidget - C++ Qt
Добрый вечер!:) У меня есть вкладки класса QTabWidget, вкладки расположены слева на форме получается вот так: а это не очень...

QDomElement. Как c вставить изображение в структуру DOM ? - C++ Qt
Если никак, то есть ли другие средства?

QDomElement. Как c ним вставить изображение в структуру DOM ? - C++ Qt
Если никак, то есть ли другие средства?

Как правильно принять изображение JPG и записать в файл TCP - C++ Qt
Я с TCP клиента андроид передаю на сервер файл JPEG.Данные вроде отправляются нормально, но на сервере при приеме возникают проблемы. Вот...

Как повернуть изображение? - C#
Здравствуйте! Я загружаю Gif изображение в Bitmap и мне нужно чтобы оно поворачивалось по направлению к курсору. Подскажите, пожалуйста,...

16
handkock
4 / 2 / 0
Регистрация: 15.10.2013
Сообщений: 94
28.03.2014, 22:13  [ТС] #16
alexey_rage, Спасибо, это то, что надо
0
handkock
4 / 2 / 0
Регистрация: 15.10.2013
Сообщений: 94
01.04.2014, 22:38  [ТС] #17
axefizik, Я всё-таки не воспользовался вашим методом. Смотрите, что использую
C++ (Qt)
1
2
3
4
5
6
QMatrix angle;
    angle.rotate(30);
    angle.translate(tank.width()/2,tank.height()/2);
    tank=tank.transformed(angle);
    angle.translate(-tank.width()/2,-tank.height()/2);
    painter.drawImage(100,100,tank);
Что:
C++ (Qt)
1
2
3
4
5
6
QTransform trans;
        trans.rotate(30);
        trans.translate(tank.width()/2,tank.height()/2);
        tank=tank.transformed(trans);
        trans.translate(-tank.width()/2,-tank.height()/2);
        painter.drawImage(100,100,tank);
Всё равно получается нечёткое изображение, несмотря на то даже. что изображение квадратное. А что если мне понадобится вращать прямоугольное ? Помогите.
0
01.04.2014, 22:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2014, 22:38
Привет! Вот еще темы с ответами:

Как повернуть изображение? - C#
Вотъ код, но он чего-то не работает , ошибок нет, просто не выполняет поворот изображения bioTank.png. public Form1() ...

Как повернуть изображение? - Delphi
Замучился искать. Много есть вариантов но они нерабочие, а те, что работают вращают изображение в новом окне, а мне нужно в текущем.Ну как ...

Как повернуть изображение на форме? - C#
Image img=Resources.Image1;

Как повернуть текст и изображение на image? - Delphi
Подскажите, пожалуйста! Как выводить текст повернутый (на image)на угол, который я указал в поле edit? Как повернуть изображение на...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru