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.