МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра «Захист інформації»
Звіт
до лабораторної роботи № 4
УПРАВЛІННЯ КОЛЬОРАМИ ТА ПАЛІТРОЮ ГРАФІЧНИХ ЗОБРАЖЕНЬ
з курсу “ Комп’ютерна графіка”
Мета роботи -вивчити процедури та функції для управління кольорами та па-літрою графічних зображень; навчитися складати програми на алгоритмічній мові Турбо-Паскаль для побудови різноманітних кольорових зображень.
Завдання:
25
Коло з чотирма спицями скочується по сходинках.
Параметри : L=70, a=40, d=18
Текст програми:
Program labo_PART_TWO;
Uses Crt, Graph;
var Gd, Gm, xs, ys, d, h, l : integer;
x_cur, x_next, y_cur, y_next, x, y, r, t, a : real;
{========================================================================================}
Procedure str;
var f_x_next, f_x_cur, f_y_next, f_y_cur : real;
begin
{line(xs-24, ys-24, GetMaxX-4, ys-24);
line(xs-24, ys-24, xs-24, GetMaxY-96);
line(GetMaxX-4, ys-24, GetMaxX-4, GetMaxY-96);
line(xs-24, GetMaxY-96, GetMaxX-4, GetMaxY-96);}
f_x_cur := xs;
f_y_cur := ys;
While (f_x_next < GetMaxX-4) and (f_y_next < GetMaxY-32) do begin
f_x_next := f_x_cur + l;
f_y_next := f_y_cur + h;
if (f_x_next < GetMaxX-4) and (f_y_next < GetMaxY-32) then begin
line(trunc(f_x_cur), trunc(f_y_cur), trunc(f_x_next), trunc(f_y_cur));
line(trunc(f_x_next), trunc(f_y_cur), trunc(f_x_next), trunc(f_y_next));
end;
f_x_cur := f_x_next;
f_y_cur := f_y_next;
end;
end;
{========================================================================================}
Procedure crcl(x, y, r, a : real);
var x1, x2, x3, x4, y1, y2, y3, y4, ang, ang0 : real;
begin
circle(trunc(x + r), trunc(y - r), trunc(r));
ang := -a * pi/180;
{ang0 := (a - 90) * pi/180;}
x1 := x + r * cos(ang);
y1 := y - r * sin(ang);
x2 := x - r * cos(ang);
y2 := y + r * sin(ang);
{x3 := x + r * cos(ang0);
y3 := y + r * sin(ang0);
x4 := x - r * cos(ang0);
y4 := y - r * sin(ang0);}
line(trunc(x1+r), trunc(y1-r), trunc(x2+r), trunc(y2-r));
{line(trunc(x3+r), trunc(y3-r), trunc(x4+r), trunc(y4-r));}
end;
{========================================================================================}
Begin
Gd := Detect;
InitGraph(Gd, Gm, '');
if GraphResult = grOK then begin
xs := 192;
ys := 128;
h := 40;
l := 70;
d := 18;
t := 0.5;
a := 2.0;
r := d/2;
x_cur := xs;
y_cur := ys;
While (x_next < GetMaxX-4) and (y_next < GetMaxY-32) do begin
x_next := x_cur + l;
y_next := y_cur + h;
x := x_cur;
y := y_cur;
While (x <= x_next) or (y <= y_next) do begin
ClearDevice;
str; {grph;}
if (x <= x_next) and (y = y_cur) then begin
x := x + t;
y := y;
end;
if (x > x_next) and (y <= y_next) then begin
x := x;
y := y + t;
end;
crcl(x, y, r, a);
a := a + 2.5*t;
delay(250);
end;
x_cur := x_next;
y_cur := y_next;
end;
end;
OutTextXY(400, GetMaxY-24, 'Press any key to continue...');
Readln;
End.
Висновок: Я ознайомився з основними відомостями. Для свого варіанту навчився малювати графік зображення у середовищі Турбо-Паскаль, а також управляти кольорами та палітрою графічних зображень.