Автор: Пользователь скрыл имя, 11 Ноября 2012 в 15:12, лабораторная работа
Цель работы: практическое освоение методов управления видеорежимами в среде программирования Turbo Pascal, создание алгоритмов, реализующих изображения стандартных графических примитивов.
Лабораторная работа №1
Разложение в растр отрезков и кривых
Цель работы: практическое освоение методов управления видеорежимами в среде программирования Turbo Pascal, создание алгоритмов, реализующих изображения стандартных графических примитивов.
Содержание индивидуального задания:
1. Нарисуйте «бублик» желтого цвета произвольного радиуса на синем фоне.
2. Нарисуйте красным цветом две трапеции и синим цветом два шестиугольника.
Исходный текст программы:
1)
program lab1_1;
uses graph,crt;
const n=6;
var gd,gm: integer;
begin
gd:=vga;
gm:=vgahi;
initgraph(gd,gm,'');
if graphresult<>grok then
begin
writeln('graph.tpu ne zagrujen');
readln;
halt;
end;
setbkcolor(1);
setfillstyle(1,14);
setcolor(14);
fillellipse(300,250,50,50);
setfillstyle(1,1);
fillellipse(300,250,35,35);
readkey;
closegraph;
end.
2)
program lab1_2;
uses graph,crt;
const n=2;
var gd,gm,r,i,c: integer; x0,y0,x1,x2: integer;
x,y: array[1..6] of integer; alfa: real;
begin
gd:=vga;
gm:=vgahi;
initgraph(gd,gm,'');
if graphresult<>grok then
begin
writeln('graph.tpu ne zagrujen');
readln;
halt;
end;
r:=50; x0:=70; y0:=70; x1:=110;
setcolor(4);
while c<n do begin
for i:=1 to 6 do begin
alfa:=i*(pi/3);
x[i]:=x0+round(r*cos(alfa));
y[i]:=y0+round(r*sin(alfa));
end;
moveto(x[6],y[6]);
for i:=1 to 6 do lineto(x[i], y[i]);
x0:=x0+x1;
c:=c+1;
end;
c:=0; x2:=0;
setcolor(1);
moveto(100,150);
while c<n do begin
lineto(150+x2,150); lineto(180+x2,200);
lineto(100+x2,200); lineto(100+x2,150);
x2:=x2+90; c:=c+1;
moveto(100+x2,150);
end;
readkey;
closegraph;
end.
1)
2)