Написание программы с использованием ООП, которая рисует треугольник произвольной формы

Страницы работы

Содержание работы

Уральский Государственный Технический Университет – УПИ

Радиотехнический факультет

Кафедра Теоретических основ радиотехники

Оценка_____________

Дата_______________

Подпись____________

ОТЧЕТ

по лабораторной работе №2

«Oбъектно-ориентированное программирование »

                                                     Преподаватель

            Группа Р-219

                              Студенты

                    Макаров Дмитрий

Екатеринбург 2001г

1.Задание

Написсать программу с использованием ООП, которая рисует треугольник произвольной формы и реализует:

Ø Перемещение фигуры по X,Y.

Ø Перемещение выбранных вершин по X,Y.

Ø Вращение фигуры относительно точки пересечения медиан.

Ø Изменение цвета контура фигуры.

2. Блок-схема

 


3.  Описание функций

3.1 Init();

Инициализация графики

3.2 Skin();

3.3 Triang::Triang(int ix1,int iy1,int ix2,int iy2,int ix3,int iy3,int ic);

Графическаа оболчка программы

3.4 Triang::MoveF();

Интерфейс для перемещения фигуры.

Перенос производится функцией Triang::MoveTo(int NewX, int NewY);

3.5 Triang::RotateTo(float a);

Интерфейс для поворота фигуры и сам поворот фигуры.

3.6Triang::MoveT();

Интерфейс для перемещения вершин.

Перенос вершин производится функциями Triang::MoveTo1(int NewX, int NewY);

Triang::MoveTo2(int NewX, int NewY); Triang::MoveTo3(int NewX, int NewY);

3.7 Triang::ChangeColor();

Интерфейс для изменения цвета и изменение цвета.

3.8 Triang::Show(); Triang::Hide();

Показывают и скрывают фигуру.

4. Листинг программы

#include <stdio.h>

#include <stdlib.h>

#include <graphics.h>

#include <math.h>

#include <conio.h>

#include <complex.h>

#include <bios.h>

enum Boolean {false,true};

class Triang {

protected:

int xm,ym,x1,x2,x3,y1,y2,y3,color;

Boolean Visible;

public:

Triang(int ix1,int iy1,int ix2,int iy2,int ix3,int iy3,int ic);

void Show();

void Hide();

void MoveTo(int NewX, int NewY);

void MoveTo1(int NewX,float NewY);

void MoveTo2(int NewX,float NewY);

void MoveTo3(int NewX,float NewY);

void MoveF();

void MoveT();

void RotateTo(float a);

void ChangeColor();

};

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////

Triang::Triang(int ix1, int iy1, int ix2,int iy2,int ix3,int iy3,int ic)

{       color=ic;

x1=ix1;x2=ix2;x3=ix3;

y1=iy1;y2=iy2;y3=iy3;

xm=(int)((x1+x2+x3)/3);

ym=(int)((y1+y2+y3)/3);

Visible=false;

};

void Triang::Show()

{       setcolor(color);

line(x1,y1,x2,y2);

line(x2,y2,x3,y3);

line(x3,y3,x1,y1);

setcolor(4);

circle(x1,y1,1);

setcolor(13);

circle(x2,y2,1);

setcolor(1);

circle(x3,y3,1);

line(x1,y1,(int)((x2+x3)/2),(int)((y2+y3)/2));

line(x2,y2,(int)((x1+x3)/2),(int)((y1+y3)/2));

line(x3,y3,(int)((x1+x2)/2),(int)((y1+y2)/2));

Visible=true;

};

void Triang::Hide()

{       setcolor(getbkcolor());

line(x1,y1,x2,y2);

line(x2,y2,x3,y3);

line(x3,y3,x1,y1);

circle(x1,y1,1);

circle(x2,y2,1);

circle(x3,y3,1);

line(x1,y1,(int)((x2+x3)/2),(int)((y2+y3)/2));

line(x2,y2,(int)((x1+x3)/2),(int)((y1+y3)/2));

line(x3,y3,(int)((x1+x2)/2),(int)((y1+y2)/2));

Visible=false;

};

void Triang::MoveTo1(int NewX,float NewY)

{

Hide();

x1=NewX;

y1=NewY;

xm=(x1+x2+x3)/3;

ym=(y1+y2+y3)/3;

Show();

};

void Triang::MoveTo2(int NewX,float NewY)

{

Hide();

x2=NewX;

y2=NewY;

xm=(x1+x2+x3)/3;

ym=(y1+y2+y3)/3;

Show();

};

void Triang::MoveTo3(int NewX,float NewY)

{

Hide();

x3=NewX;

y3=NewY;

xm=(x1+x2+x3)/3;

ym=(y1+y2+y3)/3;

Show();

};

void Triang::MoveTo(int NewX,int NewY)

{int dx,dy;

dx=NewX-xm;

dy=NewY-ym;

Hide();

xm=NewX;

ym=NewY;

x1+=dx;x2+=dx;x3+=dx;

y1+=dy;y2+=dy;y3+=dy;

Show();

};

void Triang::RotateTo (float a)

{

int e;

int xr,yr;

do{

e=bioskey(0);

if((e==19200)||(e==20480)){

Hide();

Похожие материалы

Информация о работе