Лабораторные работы1 / LAB3
.DOCЦель работы:
1. Освоение и изучение функций для вращения, перемещения и масштабирования вTurbo C.
Задание:
Написать программу для вращения, масштабирования и перемещения треугольника, который имеет цвет А и квадрата, который имеет цвет В. Поворот на 100, коэффициент увеличения 2,2, Перемещение 30,40.
Теоритическое описание:
Для того чтобы использовать графический режим к исходному файлу необходимо подключить библиотеку <graphics.h> с помощью оператора #include
Графический режим устанавливается с помощью функции initgraph(), текущий графический режим закрывается с помощью функции closegraph() которая не имеет параметров и ничего не возвращает.
Цвет для рисования устанавливается функцией sercolor(цвет).
Листинг программы
#include<conio.h>
#include<dos.h>
#include<stdio.h>
#include<graphics.h>
#include<math.h>
int razmer;
int kvadrat(int ugol,int j,int k)
{int ini1=j+sin(3.1415*(j)/180),ini2=k+cos(3.1415*(k)/180);
line(ini1+razmer*cos(3.1415*ugol/180),ini2+razmer*sin(3.1415*ugol/180),ini1+razmer*cos(3.1415*(ugol+90)/180),ini2+razmer*sin(3.1415*(ugol+90)/180));
line(ini1+razmer*cos(3.1415*(ugol+90)/180),ini2+razmer*sin(3.1415*(ugol+90)/180),ini1+razmer*cos(3.1415*(ugol+180)/180),ini2+razmer*sin(3.1415*(ugol+180)/180));
line(ini1+razmer*cos(3.1415*(ugol+180)/180),ini2+razmer*sin(3.1415*(ugol+180)/180),ini1+razmer*cos(3.1415*(ugol+270)/180),ini2+razmer*sin(3.1415*(ugol+270)/180));
line(ini1+razmer*cos(3.1415*ugol/180),ini2+razmer*sin(3.1415*ugol/180),ini1+razmer*cos(3.1415*(ugol-90)/180),ini2+razmer*sin(3.1415*(ugol-90)/180));
return 0;
}
int treugolnik(int ugol,int j,int k)
{int ini1=j+sin(3.1415*(j)/180),ini2=k+cos(3.1415*(k)/180);
line(ini1+razmer*cos(3.1415*ugol/180),ini2+razmer*sin(3.1415*ugol/180),ini1+razmer*cos(3.1415*(ugol+90)/180),ini2+razmer*sin(3.1415*(ugol+90)/180));
line(ini1+razmer*cos(3.1415*(ugol+90)/180),ini2+razmer*sin(3.1415*(ugol+90)/180),ini1+razmer*cos(3.1415*(ugol+180)/180),ini2+razmer*sin(3.1415*(ugol+180)/180));
line(ini1+razmer*cos(3.1415*ugol/180),ini2+razmer*sin(3.1415*ugol/180),ini1+razmer*cos(3.1415*(ugol+180)/180),ini2+razmer*sin(3.1415*(ugol+180)/180));
return 0;
}
int main()
{
char c;
int gd=DETECT,gm,i;
initgraph(&gd,&gm,"");
setcolor(15);
razmer=50;
kvadrat(45,100,100);
setcolor (10);
treugolnik(45,200,200);
settextstyle(2,0,5);
outtextxy(50,380,"Press any key to change");
getche();
cleardevice();
razmer=razmer*2.2;
setcolor(15);
kvadrat(145,100+30,100+40);
setcolor (10);
treugolnik(145,200+30,200+40);
settextstyle(2,0,5);
outtextxy(50,380,"Press any key exit");
getche();
closegraph();
return 0;
}
Листинг полученных результатов
Вывод: В данной лабораторной работе я ознакомился со способами перемещения и масштабирования в Turbo C.