Автор: akaGM
Дата сообщения: 08.11.2006 18:43
на...
писал на Дельфи, ВР под рукой нет...
переменных много для понятности...
сам добей...
[more=типа светофор]
uses Graph;
var
gd, gm: integer;
w, h: integer;
x0, y0, x1, y1, x2, y2: integer;
xellipse, yellipse, radius: integer; {координаты и радиус кругов}
dx, dy: integer;
{ getmaxx, getmaxy: integer;}
begin
w := 300; {ширина в пикселях}
h := 600; {высота}
dx := 10; {отступы в прямоугольнике по х и по у}
dy := 10;
initgraph(gd, gm, '');
{ getmaxx := clientwidth;}
{ getmaxy := clientheight}
x0 := getmaxx div 2;
y0 := getmaxy div 2;
x1 := x0 - w div 2;
y1 := y0 - h div 2;
x2 := x1 + w;
y2 := y1 + h;
xellipse := x0;
yellipse := y1 + dy;
if (w < h) then
radius := w div 3 - 2*dx
else
radius := h div 3 - 5*dy;
{проверка}
if (radius <=0) then begin
closegraph;
writeln('дурацкий у тебя светофор...');
readln;
halt;
end;
{ with Canvas do begin}
setfillstyle(1, darkgray);
bar(x1, y1, x2, y2);
{red}
inc(yellipse, 2*radius + dy);
setfillstyle(1, red);
setcolor(red);
fillellipse(xellipse, yellipse, radius, radius);
{yellow}
inc(yellipse, 2*radius + dy);
setfillstyle(1, yellow);
setcolor(yellow);
fillellipse(xellipse, yellipse, radius, radius);
{green}
inc(yellipse, 2*radius + dy);
setfillstyle(1, green);
setcolor(green);
fillellipse(xellipse, yellipse, radius, radius);
readln;
closegraph;
end.
[/more]