Исходник был приведён к такому виду, что бы обеспечить
возможность компиляции в этой среде :
Код:
PROGRAM Flower;
{$i pas:Graph}
VAR
Gd, Gm: INTEGER;
PROCEDURE DrawFlower (x, y, radius: INTEGER; n: INTEGER; a1, a3, a5: REAL);
CONST
p = 3.1 { 0.0172 };
var
b1, b3, b5, q, r, dg, rd, cosRd, sinRd: REAL;
BEGIN
q := a1 + a3 + a5;
b1 := radius * a1 / q; b3 := radius * a3 / q; b5 := radius * a5 / q;
dg := 360.0;
REPEAT
rd := dg * p; q := n * rd;
r := ABS(b1 * SIN(q * 0.5) + b3 * SIN(q * 1.5) + b5 * SIN(q * 2.5));
cosRd := COS(rd); sinRd := SIN(rd);
MoveTo(x, y); LineRel(ROUND(r*cosRd), ROUND(r*sinRd));
PutPixel(x+ROUND((R+4.0)*cosRd), y+ROUND((R+4.0)*sinRd), WHITE);
Dg := Dg - 0.5;
UNTIL Dg = 0.0;
q := radius / 10.0;
REPEAT
n := 345;
REPEAT
PutPixel(x+ROUND(q*COS(n*p)), y+ROUND(q*SIN(n*p)), WHITE);
n := n - 15;
UNTIL n < 0;
q := q - radius / 50.0
UNTIL q < 0.0;
END {Flower};
BEGIN
Gd := 1; Gm := GraphAndText;
InitGraph(Gd, Gm);
SetBkColor(bLACK); SetColor(wHITE); ClearDevice;
DrawFlower(GetMaxX DIV 2, GetMaxY DIV 2, GetMaxY DIV 3 * 2,
5, 1.0, 0.25, 0.1);
ReadLn;
{ CloseGraph; }
END.
Единственное, что при нажатии на "эни_кей" и прекращения отрисовки
вместо "обычного" завершение вылетает сообщение об ошибке такого вида,
но это не страшно - возможно в конце требуется какая-то процедура (про которую я забыл) и главное FLOWER.PAS рисует цветок ! )
[свернуть]