Лабораторна робота №
з дисципліни
“Комп’ютерна графіка”
Тема роботи: Моделювання 2D- композиції
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <graphics.h>
#include <dos.h>
#include <math.h>
void main()
{
int gdriver=DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode,"C:\\TC3.0\\BGI");
errorcode=graphresult();
if(errorcode!=grOk)
cout<<"POmulka "<<grapherrormsg(errorcode);
getch();
exit(1);
}
float x=150,y=200,R=50,alfa=M_PI/6,h=200,m=50;//,
float lx1,ly1,lx2,ly2,lx3,ly3,lx4,ly4,dx=1.5,dy=1.5,xn,yn;
lx1=x-50;
ly1=y;
lx2=x;
ly2=y-50;
lx3=x+50;
ly3=y;
lx4=x;
ly4=y+50;
setcolor(15);
circle(x,y,R);
line(lx1,ly1,lx2,ly2);
line(lx2,ly2,lx3,ly3);
line(lx3,ly3,lx4,ly4);
line(lx1,ly1,lx4,ly4);
setcolor(BLACK);
//obertanja
lx1-=x;
ly1-=y;
xn=(lx1*cos(alfa))-(ly1*sin(alfa));
yn=(lx1*sin(alfa))+(ly1*cos(alfa));
xn+=x;
yn+=y;
lx1=xn;
ly1=yn;
lx2-=x;
ly2-=y;
xn=(lx2*cos(alfa))-(ly2*sin(alfa));
yn=(lx2*sin(alfa))+(ly2*cos(alfa));
lx2=xn;
ly2=yn;
lx3-=x;
ly3-=y;
xn=(lx3*cos(alfa))-(ly3*sin(alfa));
yn=(lx3*sin(alfa))+(ly3*cos(alfa));
lx3=xn;
ly3=yn;
lx4-=x;
ly4-=y;
xn=(lx4*cos(alfa))-(ly4*sin(alfa));
yn=(lx4*sin(alfa))+(ly4*cos(alfa));
lx4=xn;
ly4=yn;
//vektor
x+=h;
y+=m;
lx1+=h;ly1+=m;
lx2+=h;ly2+=m;
lx3+=h;ly3+=m;
lx4+=h;ly4+=m;
//mashtabyvanja
R*=dx;
x*=dx;
y*=dx;
lx1*=dx;ly1*=dy;
lx2*=dx;ly2*=dy;
lx3*=dx;ly3*=dy;
lx4*=dx;ly4*=dy;
closegraph();