close

Вход

Забыли?

вход по аккаунту

?

лаб1

код для вставкиСкачать
ГУАП
КАФЕДРА № 43
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
Доц.С.В. Щекиндолжность, уч. степень, званиеподпись, датаинициалы, фамилия
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕАффинные преобразования на плоскостипо дисциплине: КОМПЬЮТЕРНАЯ ГРАФИКАРАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР.4132А.Г. Дроздовподпись, датаинициалы, фамилия
Санкт-Петербург 2013
Задание:
12
1 - поворот по часовой стрелке
2 - поворот против часовой стрелки
3 - сжатие по горизонтали
4 - сжатие по вертикали Листинг программы:
#include "widget.h"
#include "ui_widget.h"
#include "qpainter.h"
#include "math.h"
#define pi 3.141592653589793
int angle=0;
long double alpha;
double cross[13][2]={{-50,-20},{-25,-20},{-25,-40},{25,-40},{25,-20},
{50,-20},{50,20},{25,20},{25,40},{-25,40},{-25,20},{-50,20},{-50,-20}};
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setPen(QPen(Qt::black, 3, Qt::SolidLine, Qt::RoundCap));
for(int i=0;i<12;i++)
painter.drawLine(cross[i][0]*cos(alpha)-cross[i][1]*sin(alpha)+150,cross[i][1]*cos(alpha)+cross[i][0]*sin(alpha)+120,
cross[i+1][0]*cos(alpha)-cross[i+1][1]*sin(alpha)+150,cross[i+1][1]*cos(alpha)+cross[i+1][0]*sin(alpha)+120);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_5_clicked()//Поворот влево
{
angle-=15;
alpha=angle*pi/180;
repaint();
}
void Widget::on_pushButton_6_clicked()//Поворот вправо
{
angle+=15;
alpha=angle*pi/180;
repaint();
}
void pressing(double kx, double ky)
{
for(int i=0;i<13;i++)
{
cross[i][0]*=kx;
cross[i][1]*=ky;
}
}
void Widget::on_pushButton_clicked()//Сжать по горизонтали
{
pressing(0.9,1);
repaint();
}
void Widget::on_pushButton_2_clicked()//Расширить по горизонтали
{
pressing(1.1,1);
repaint();
}
void Widget::on_pushButton_3_clicked()//Сжать по вертикали
{
pressing(1,0.9);
repaint();
}
void Widget::on_pushButton_4_clicked()//Расширить по вертикали
{
pressing(1,1.1);
repaint();
}
Документ
Категория
Рефераты
Просмотров
14
Размер файла
40 Кб
Теги
лаб1
1/--страниц
Пожаловаться на содержимое документа