По информатике pascal Задание 3. Нарисуйте 5 звезд с различным кол-вом углов. Закрасьте их случайный цветом, используя процедуры SetPixel и функции RGB. Задание 4. Создайте пейзаж с 5 разными элементами. Раскрасьте его. Задание 5. К объектам, созданным в задании 4 наложите элементы анимации.
uses Graph; var gd, gm, x, y, i: integer; stars: array[1..5] of array[1..2] of integer; procedure DrawStar(x, y, sides: integer; color: longint); var i, angle: integer; begin SetFillStyle(SolidFill, color); PieSlice(x, y, 0, 360, 20); for i := 0 to sides-1 do begin angle := 360 * i div sides; Line(x, y, x + Round(20 * Cos(DegToRad(angle))), y + Round(20 * Sin(DegToRad(angle)))); end; end; begin gd := VGA; gm := VGAHi; InitGraph(gd, gm, ''); randomize; for i := 1 to 5 do begin stars[i][1] := random(GetMaxX); stars[i][2] := random(GetMaxY); DrawStar(stars[i][1], stars[i][2], random(5) + 3, RGB(random(256), random(256), random(256))); end; ReadLn; CloseGraph; end.
Задание 4 и 5:
uses Graph; var gd, gm: integer; procedure DrawLandscape; begin SetFillStyle(SolidFill, RGB(0, 255, 0)); Bar(0, GetMaxY div 2, GetMaxX, GetMaxY); SetFillStyle(SolidFill, RGB(135, 206, 235)); Bar(0, 0, GetMaxX, GetMaxY div 2); SetFillStyle(SolidFill, RGB(139, 69, 19)); Bar(GetMaxX div 2 - 50, GetMaxY div 2, GetMaxX div 2 + 50, GetMaxY); SetFillStyle(SolidFill, RGB(255, 255, 0)); PieSlice(100, 100, 0, 360, 50); SetFillStyle(SolidFill, RGB(255, 215, 0)); Bar(200, GetMaxY - 150, 250, GetMaxY); end; procedure AnimateElement; var x, y, color: integer; begin x := 300; y := 300; while (x < GetMaxX - 50) do begin color := RGB(random(256), random(256), random(256)); SetFillStyle(SolidFill, color); Bar(x, y, x + 50, y + 50); Delay(100); SetFillStyle(SolidFill, RGB(0, 0, 0)); Bar(x, y, x + 50, y + 50); Inc(x, 10); end; end; begin gd := VGA; gm := VGAHi; InitGraph(gd, gm, ''); DrawLandscape; AnimateElement; ReadLn; CloseGraph; end.
Задание 3:
usesGraph;
var
gd, gm, x, y, i: integer;
stars: array[1..5] of array[1..2] of integer;
procedure DrawStar(x, y, sides: integer; color: longint);
var
i, angle: integer;
begin
SetFillStyle(SolidFill, color);
PieSlice(x, y, 0, 360, 20);
for i := 0 to sides-1 do
begin
angle := 360 * i div sides;
Line(x, y, x + Round(20 * Cos(DegToRad(angle))), y + Round(20 * Sin(DegToRad(angle))));
end;
end;
begin
gd := VGA;
gm := VGAHi;
InitGraph(gd, gm, '');
randomize;
for i := 1 to 5 do
begin
stars[i][1] := random(GetMaxX);
stars[i][2] := random(GetMaxY);
DrawStar(stars[i][1], stars[i][2], random(5) + 3, RGB(random(256), random(256), random(256)));
end;
ReadLn;
CloseGraph;
end.
Задание 4 и 5:
usesGraph;
var
gd, gm: integer;
procedure DrawLandscape;
begin
SetFillStyle(SolidFill, RGB(0, 255, 0));
Bar(0, GetMaxY div 2, GetMaxX, GetMaxY);
SetFillStyle(SolidFill, RGB(135, 206, 235));
Bar(0, 0, GetMaxX, GetMaxY div 2);
SetFillStyle(SolidFill, RGB(139, 69, 19));
Bar(GetMaxX div 2 - 50, GetMaxY div 2, GetMaxX div 2 + 50, GetMaxY);
SetFillStyle(SolidFill, RGB(255, 255, 0));
PieSlice(100, 100, 0, 360, 50);
SetFillStyle(SolidFill, RGB(255, 215, 0));
Bar(200, GetMaxY - 150, 250, GetMaxY);
end;
procedure AnimateElement;
var
x, y, color: integer;
begin
x := 300;
y := 300;
while (x < GetMaxX - 50) do
begin
color := RGB(random(256), random(256), random(256));
SetFillStyle(SolidFill, color);
Bar(x, y, x + 50, y + 50);
Delay(100);
SetFillStyle(SolidFill, RGB(0, 0, 0));
Bar(x, y, x + 50, y + 50);
Inc(x, 10);
end;
end;
begin
gd := VGA;
gm := VGAHi;
InitGraph(gd, gm, '');
DrawLandscape;
AnimateElement;
ReadLn;
CloseGraph;
end.