Нарисовать правильную восьмиконечную звезду красного цвета (по принципу безотрывных линий ), вписанную в зеленый круг. Фон желтый — Pascal(Паскаль) — Delphi(Делфи)

Delphi

const
  //Координаты центра
  x=200;
  y=200;
  //Внешний и внутренний радиусы
  r1=100;
  r2=50;
var
  i: single;
begin
  i:=0;
  Image1.Canvas.Brush.Color:=$FFFF;
  FloodFill(Image1.Canvas.Handle,5,5,0);
  Image1.Canvas.Pen.Color:=$FF00;
  Image1.Canvas.Ellipse(x-r1,y-r1,x+r1,y+r1);
  Image1.Canvas.Pen.Color:=$FF;
  Image1.Canvas.Moveto(x+r1,y);
  repeat
      Image1.Canvas.LineTo(round(cos(i)*r1)+x,round(sin(i)*r1)+y);
      Image1.Canvas.LineTo(round(cos(i+0.3926990816987241548078304229095)*r2)+x,round(sin(i+0.3926990816987241548078304229095)*r2)+y);
      i:=i+0.78539816339744830961566084581988;
  until i>=2*PI;
end;

Pascal

uses graph;
var gd,gm,xc,yc,r,a,i:integer;
    p:array[1..8] of pointtype;
begin
gd:=0;
initgraph(gd,gm,'');
xc:=getmaxX div 2;
yc:=getmaxY div 2;
r:=100;
a:=0;
for i:=1 to 8 do
 begin
  p[i].x:=xc+round(r*cos(a*pi/180));
  p[i].y:=yc-round(r*sin(a*pi/180));
  a:=a+45;
 end;
setfillstyle(1,14);
bar(xc-r-20,yc-r-20,xc+r+20,yc+r+20);
Setlinestyle(0,0,3);
Setcolor(2);
Circle(xc,yc,r);
SetColor(12);
Moveto(p[1].x,p[1].y);
LineTo(p[4].x,p[4].y);
LineTo(p[7].x,p[7].y);
LineTo(p[2].x,p[2].y);
LineTo(p[5].x,p[5].y);
LineTo(p[8].x,p[8].y);
LineTo(p[3].x,p[3].y);
LineTo(p[6].x,p[6].y);
LineTo(p[1].x,p[1].y);
readln
end.

Leave a Comment

93 − = 87