МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ПОБУДОВА ЕЛЕМЕНТАРНИХ ГЕОМЕТРИЧНИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ FREE-PASCAL
ДО ЛАБОРАТОРНОЇ РОБОТИ № 1
З КУРСУ “КОМП’ЮТЕРНА ГРАФІКА”
ПОВНИЙ ТЕКСТ ЗАВДАННЯ
1. Навчитися ініціалізувати графічний режим роботи відеоадаптера в середовищі Турбо-Паскаль.
2. Вивчити основні графічні процедури та функції алгоритмічної мови Турбо-Паскаль.
3.Написати програму на алгоритмічній мові Турбо-Паскаль, яка виводить на екран певне графічне зображення. Розміри, вказані в завданнях, проставити на кресленні. Варіанти завдань беруть за вказівкою викладача з таблиці 1.
Таблиця 1.
N% п/п
Варіанти завдань
11
Побудувати вписаний правильний п'ятикутник. Радіус кола дорівнює 90.
ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ
1
2
3
4
5
6
7
8
9
10
11
12
14
15 13
16
ні так
17
18
19
20 ні
так
21
22
25
23
24
СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ПРОЦЕДУР ТА ФУНКЦІЙ, ВИКОРИСТАНИХ У БЛОК-СХЕМІ АЛГОРИТМУ І ПРОГРАМИ, ТА ЇХ ПОЯСНЕННЯ
СПИСОК :
DRIVER
MODE
N
R
M
X0
Y0
ARCCOORDS
C1
C2
CP
DC
CD
XSTART
YSTART
XEND
YEND
ПОЯСНЕННЯ ІДЕНТИФІКАТОРІВ ЗМІННИХ :
DRIVER – характеризує тип графічного драйвера
MODE – визначає режим роботи графічного адаптера
N – лічильник циклу побудови многокутника
R – радіус описаного кола
M - число кутів многокутника
X0 – координата центра кола по осі абсцис
Y0 - координата центра кола по осі ординат
ARCOORDS - змінна типу ARCCOORDSTYPE, що повертає координати центру, початку та кінця дуги.
C1 – початкове значення кута дуги
C2 – кінцеве значення кута дуги
CP – градусна розмірність кола
DC – приріст кута дуги
CD – розрахунок приросту кута дуги
XSTART – координата початку дуги по осі абсцис
YSTART – координата початку дуги по осі ординат
XEND – координата кінця дуги по осі абсцис
YEND – координата кінця дуги по осі ординат
ПОЯСНЕННЯ ПРОЦЕДУР ТА ФУНКЦІЙ :
GETARCCOORDS – повертає значення координат початку та кінця дуги
INITGRAPH – ініціалізує графічний режим
GRAPHRESULT – тестує роботу графічного режиму
ARC – пошук координат початку та кінця дуги
LINE – сполучає 2 вибрані точки задані координатами
SETLINESTYLE – задає тип ліній
SETCOLOR – задає колір ліній
ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ
Program Lab_2Kurs_1;
uses crt,graph;
var
driver,mode,n,r,m,x0,y0:integer;
arccoords:Arccoordstype;
c1,c2,cp,dc:word;
cd:real;
begin
clrscr();
writeln('Enter Circle X Coordinate :');
readln(x0);
writeln('Enter Circle Y Coordinate :');
readln(y0);
writeln('Enter number of corners :');
readln(m);
cp:=360;
cd:=cp/m;
writeln('Enter current corner increase value now : ',cd:2:2);
readln(dc);
writeln('Enter Circle Radius :');
readln(r);
driver:=detect;
initgraph(driver,mode,'');
if graphresult <> 0 then begin
writeln('Internal Error...');
halt
end;
n:=1;
c1:=0;
c2:=dc;
setlinestyle(0,4,3);
setcolor(9);
while (n<=m) do begin
arc(x0,y0,c1,c2,r);
GETARCCOORDS(arccoords);
with arccoords do line(xstart,ystart,xend,yend);
n:=n+1;c1:=c2;c2:=c2+dc;end;
readln;
end.
РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ
Enter Circle X Coordinate :
640
Enter Circle Y Coordinate :
480
Enter number of corners :
5
Enter current corner increase value now : 72.00
72
Enter Circle Radius :
90