Показать сообщение отдельно
Старый 03.04.2012, 14:26   #1 (permalink)
alexpauk
Новичок
 
Регистрация: 03.04.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите разобраться в исходном коде

Помогите разобраться в исходном коде. Программа написана на PascalABC.NET

uses graphABC;
type Tpoint=record //пишем свой тип точка, он вообще-то есть в АВС,
//но нужно подключать модуль PointRect
x,y:integer;
end;
procedure Zvezda(x,y,r:integer);//рисование звезды
var i,a:integer;
p:array[1..11] of Tpoint;
begin
a:=18;
for i:=1 to 10 do
begin
if odd(i) then
begin
p[i].x:=x+round(r*cos(a*pi/180));
p[i].y:=y-round(r*sin(a*pi/180));
end
else
begin
p[i].x:=x+round(r*cos(a*pi/180)/2);
p[i].y:=y-round(r*sin(a*pi/180)/2);
end;
a:=a+36;
end;
p[11].x:=p[1].x;
p[11].y:=p[1].y;
MoveTo(p[1].x,p[1].y);
setpencolor(clred);
for i:=1 to 11 do
LineTo(p[i].x,p[i].y);
floodfill(x,y,clgreen);
end;
var xc,yc,x,y,w,h,r1,r:integer;
begin
xc:=windowwidth div 2;
yc:=windowheight div 2;
w:=200;
h:=100;
r:=round(w/30);
setpencolor(clGreen);
rectangle(xc-w,yc-h,xc+w,yc+h);
for x:=xc-w+r to xc+w-r do
for y:=yc-h+r to yc+h-r do
if (x mod (2*r)=0)and(y mod (2*r)=0) then Zvezda(x,y,r);
end.


Смысл программы в заполнении области своей заливкой(звёздочками).
Прошу помочь разобраться в исходном коде. Желательно все, что можно.
Буду благодарен за ответы.
alexpauk вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070