Вывод на экран случайных эллипсов, линий, треугольников, прямоугольков, ромбов, линий, пикселей

den4ik_73

вывод на экран случайных эллипсов, линий, треугольников, прямоугольков, ромбов, линий, пикселей и т.д
6 ответов

den4ik_73

uses graphABC;
type point=record
           x,y:integer;
           end;
procedure trg(x,y,r:integer);
var p:array[1..4] of point;
    u:real;
    i:byte;
begin
u:=pi/2;
for i:=1 to 4 do
 begin
  p[i].x:=x+round(r*cos(u));
  p[i].y:=y-round(r*sin(u));
  u:=u+2*pi/3;
 end;
polygon(p,4);
end;
procedure romb(x,y,a,b:integer);
var p:array[1..5] of point;
begin
p[1].x:=x; p[1].y:=y-b;
p[2].x:=x+a; p[2].y:=y;
p[3].x:=x; p[3].y:=y+b;
p[4].x:=x-a; p[4].y:=y;
p[5]:=p[1];
polygon(p,5);
end;
var n1,n2,r1,r2,i:integer;
begin
setwindowsize(600,600);
centerwindow;
setbrushstyle(bsClear);
r1:=10;
r2:=100;
n1:=120;
n2:=360;
for i:=1 to 3 do
 begin
  setpencolor(clRed);
  trg(n1+random(n2),n1+random(n2),r1+random(r2));
  setpencolor(clBlue);
  romb(n1+random(n2),n1+random(n2),r1+random(r2),r1+random(r2));
  setpencolor(clGreen);
  rectangle(n1+random(n2)-(r1+random(r2)),n1+random(n2)-(r1+random(r2)),
            n1+random(n2)+(r1+random(r2)),n1+random(n2)+(r1+random(r2)));
  setpencolor(clLime);
  ellipse(n1+random(n2)-(r1+random(r2)),n1+random(n2)-(r1+random(r2)),
            n1+random(n2)+(r1+random(r2)),n1+random(n2)+(r1+random(r2)));
  setpencolor(clPurple);
  line(n1+random(n2)-(r1+random(r2)),n1+random(n2)-(r1+random(r2)),
            n1+random(n2)+(r1+random(r2)),n1+random(n2)+(r1+random(r2)));
  setfontsize(14);
  setfontcolor(clNavy);
  textout(n1+random(n2),n1+random(n2),'ГЁ ГІ.Г¤.');
 end;
for i:=1 to 1000 do
setpixel(n1+random(n2),n1+random(n2),clMaroon);
 
end.


den4ik_73

Нужны комментарии!


den4ik_73

Напиши.


den4ik_73

не разберусь


den4ik_73

uses graphABC;
type point=record //тип точка с полями координатами
           x,y:integer;
           end;
procedure trg(x,y,r:integer);//рисование треугольника
var p:array[1..4] of point;//массив точек
    u:real; //угол
    i:byte;//счетчик цикла
begin
u:=pi/2;//начальный угол(90 градусов)
for i:=1 to 4 do //4 точки
 begin
  p[i].x:=x+round(r*cos(u)); //откладываем радиус под данным углом
  p[i].y:=y-round(r*sin(u));
  u:=u+2*pi/3; //увеличим центральный угол на 120 градусов
 end;
polygon(p,4); //нарисуем треугольник как полигон
end;
procedure romb(x,y,a,b:integer);//рисование ромба
var p:array[1..5] of point;
begin
p[1].x:=x; p[1].y:=y-b; //от центра откладываем один радиус влево и вправо
p[2].x:=x+a; p[2].y:=y;  //другой вверх и вниз
p[3].x:=x; p[3].y:=y+b;
p[4].x:=x-a; p[4].y:=y;
p[5]:=p[1];
polygon(p,5);
end;
var n1,n2,r1,r2,i:integer;
begin
setwindowsize(600,600); //размер графичемкого окна
centerwindow;//окно в центре экрана
setbrushstyle(bsClear);//стиль кисти без заполнения
r1:=10;//установим предельные радиусы
r2:=100;
n1:=120;//и предельные значения координат центров фигур
n2:=360;
for i:=1 to 3 do
 begin
  setpencolor(clRed); //красный цвет
  trg(n1+random(n2),n1+random(n2),r1+random(r2));//рисуем 3 треугольника
  setpencolor(clBlue); //синий цвет
  romb(n1+random(n2),n1+random(n2),r1+random(r2),r1+random(r2));//3 ромба
  setpencolor(clGreen);//зеленый цвет
  rectangle(n1+random(n2)-(r1+random(r2)),n1+random(n2)-(r1+random(r2)),//3 прямоугольника
            n1+random(n2)+(r1+random(r2)),n1+random(n2)+(r1+random(r2)));
  setpencolor(clLime);//светло-зеленый
  ellipse(n1+random(n2)-(r1+random(r2)),n1+random(n2)-(r1+random(r2)),//3 эллипса
            n1+random(n2)+(r1+random(r2)),n1+random(n2)+(r1+random(r2)));
  setpencolor(clPurple);//пурпурный
  line(n1+random(n2)-(r1+random(r2)),n1+random(n2)-(r1+random(r2)),
            n1+random(n2)+(r1+random(r2)),n1+random(n2)+(r1+random(r2)));//3 линии
//  setfontsize(14); // это убери, просто шутка
//  setfontcolor(clNavy);
//  textout(n1+random(n2),n1+random(n2),'и т.д.');
 end;
for i:=1 to 1000 do  //1000 точек
setpixel(n1+random(n2),n1+random(n2),clMaroon);
end.