Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_Лаб_Гриф.doc
Скачиваний:
7
Добавлен:
14.11.2019
Размер:
2.81 Mб
Скачать

Графічні примітиви

void far bar(int left, int top, int right, int botton);

void far bar3d(int left, int top, int right, int botton, int depth, int topflag);

void far fillpoly(int numpoints, int far *polypoints);

void far fillelipse(int x, int y, int xradius, int yradius);

void far pielipse(int x, int y, stangle, int endangle, int radius);

void far sector(int x, int y, int stangle, int endangle, int xradius, int yradius);

void far line(int x1, int y1, int x2, int y2);

void far linerel(int dx, int dy);

void far lineto(int x, int y);

void far rectangle(int left, int top, int right, int botton);

void far drawpoly(int numpoints, far *polypoints);

void far circle(int x, int y, int radiuces);

void far arc(int x, int y, int stangle, int endangle, int radius);

void far ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);

Приклад

/* ЗАНЯТТЯ N 19

Розробив Гармаш В.Н.

Оголосити масиви для виведення тексту в графічному режимі,

виконати їхню ініціалізацію. Виконати ініціалізацію графічного

режиму роботи. Виконати розрахунки і побудувати задану геометричну

фігуру. Вивести тексти на екран із застосуванням необхідних функцій. */

#include <graphics.h>

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <math.h>

#include <DOS.H>

#define ANGLES 15

#define PIXEL_COUNT 1000

#define DELAY_TIME 100 /* in milliseconds */

char *str[ ] = {"А", "л", "ь", "ф", "а", " ", "Ц", "е", "н", "т", "а", "у", "р", "а", "."};

char st[ ] = "_";

void demo(int x, int y, int size, int color);

void demo1(void);

void main( )

{ // Ініціалізація графічного режиму роботи

int graphdriver = DETECT, graphmode, errorcode;

initgraph(&graphdriver, &graphmode, " ");

errorcode = graphresult( );

if (errorcode != grOk)

{ printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch( );

exit(1);

}

//Малювання рамки по контурі екрана

setcolor(9); //Установка кольору

setlinestyle(0, 0, 3); //Установка типу лінії

line(0, 0, getmaxx( ), 0); // Малювання лінії

line(0, 0, 0, getmaxy( ));

line(getmaxx( ), 0, getmaxx( ), getmaxy( ));

line(0, getmaxy( ), getmaxx( ), getmaxy( ));

setcolor(10); //Виведення тексту "ЗАВДАННЯ 19"

settextstyle(GOTHIC_FONT, HORIZ_DIR, 4);

outtextxy(260, 10, "ЗАВДАННЯ 19");

demo(320, 250, 125, 11); // Функція виведення малюнка

demo1( ); // Функція виведення тексту "Альфа Центавра"

getch( );

closegraph( ); // Закінчення графічного режиму роботи

clrscr( );

}

void demo(int x, int y, int size, int color)

{ setcolor(color);

setlinestyle(0, 0, 1);

int xx[ANGLES], yy[ANGLES], i, j;

for (i = 0; i <=ANGLES-1; i ++)

{ xx[ i ] = x + (int)(cos( i * 2 * M_PI / ANGLES) * size);

yy[ i ] = y - (int)(sin( i * 2 * M_PI / ANGLES) * size);

}

for (i = 0; i <= ANGLES - 1; i ++)

{ for (j = 0; j <= ANGLES - 1; j ++)

if (i != j)

{ line(xx[ i ], yy[ i ], xx[ j ], yy[ j ]);

}

}

}

void demo1(void)

{ int f1 = installuserfont("rtri.CHR"); //Установка шрифту

unsigned int sz;

void far *ptr;

sz = imagesize(10, 10, 50, 50);

ptr = malloc(sz);

getimage(10, 10, 50, 50, ptr);

int size = 2, tt, ff, i;

while( !kbhit( ))

{ tt = 0;

settextstyle(DEFAULT_FONT, HORIZ_DIR, size);

for(i = 0; i < 3; i ++)

{ setcolor(3); outtextxy(260, 60, st); delay(90);

setcolor(0); outtextxy(260, 60, st); delay(90);

}

setcolor(3); ff = 260;

for(i = 0; i < 15; i ++)

{ setcolor(3);

settextstyle(f1, HORIZ_DIR, 4);

outtextxy(260 + tt, 50, str[ i ] );

tt += textwidth(str[ i ] );

sound(30); delay(20); nosound( );

settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);

outtextxy(260 + tt + 4, 60, st); delay(40);

setcolor(0);

outtextxy(260 + tt + 4, 60, st); delay(10);

}

settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);

for(i = 1; i < 4; i ++)

{ setcolor(3); outtextxy(260 + tt + 4, 60, st); delay(90);

setcolor(0); outtextxy(260 + tt + 4, 60, st); delay(90);

}

setcolor(3);

ff = tt + 260; tt = 0;

for(i = 14; i >= 0; i - -)

{ settextstyle(f1, HORIZ_DIR, 4);

tt += textwidth(str[ i ] );

sound(30); delay(20); nosound( );

putimage(ff - tt, 50, ptr, COPY_PUT);

settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);

setcolor(3); outtextxy(ff – tt - 4, 60, st); delay(40);

setcolor(0); outtextxy(ff – tt - 4, 60, st); delay(10);

}

}

}