4 задачи (Borland Turbo C 3.0). Генерация отрезков. Алгоритм Брезенхема

  • ID: 00586 
  • 21 страница
300 рубСкачать

гарантия низкой цены

linebrez.cpp

LINEBREZ.exe

Z1.cpp

Z1.exe

отчет z1.docx

Фрагмент работы:

Генерация отрезков. Алгоритм Брезенхема.

#include "stdio.h"

#include "conio.h"

#include "graphics.h"

void PutPixel(int x, int y)

{

putpixel(x,y,15);

}

void main()

{

int X,Y,x1,x2,y1,y2,E,Px,Py,i;

int gdriver = DETECT, gmode, errorcode;

initgraph(&gdriver, &gmode, "");

x1= 100;

x2= 200;

y1= 50;

y2= 70;

X= x1;

Y= y1;

Px= x2 - x1;

Py= y2 - y1;

E= 2*Py - Px;

i= Px;

PutPixel(X, Y); /* Первая точка вектора */

while ( i>=0) {

i--;

if (E >= 0) {

X= X + 1;

Y= Y + 1;

E= E + 2*(Py - Px);

} else

{

X= X + 1;

E= E + 2*Py;

}

PutPixel(X, Y); /* Очередная точка вектора */

}

getch();

closegraph();

}

Задание. Разработать АТД «Простой граф».

Интерфейс АТД «Простой граф» включает операции:

Конструктор пустого графа для заданных числа вершин, типа, и формы представления

V( ) опрос числа вершин в графе,

E( ) опрос числа ребер в графе,

Directed( ) опрос типа графа (ориентированный / неориентированный)

Dense опрос формы представления графа (L- граф / M- граф),

Insert(v1,v2) вставка ребра, соединяющего вершины v1, v2,

Delete (v1,v2) удаление ребра, соединяющего вершины v1, v2,

Edge(v1,v2) опрос наличия ребра, соединяющего вершины v1, v2,

SetEdge(v1,v2, data) задание параметров ребра,

Константы

MAXPOINT = 20 – максимальное количество узлов графа.

Формат АТД

Данные класс TGraf

Процедуры и функции класс TGraf

Объявление класса в клиентской программе

TGraf a(3,1,0); // 3 – количество вершин, 1 – неориентированный граф, 0 – ориентированный граф

Программа:

#include "conio.h"

#include "stdio.h"

#include "stdlib.h"

#define MAXPOINT 20

class TPoint

{

public:

TPoint *next;

int key; // nomer sleduyuchey tochki

int data; // nekotoriy parametr rebra

TPoint () {key= 0; next= NULL; data= 0;}

TPoint (int key_) {key= key_; next= NULL; data= 0;}

void add(int key_)

{

if (next!= NULL)

{

if (next->key!=key_) next->add(key_);

return;