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

Давайте я прокомментирую, что знаю. А с остальным прошу помочь:


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; // массив от 1 до 11
begin
a:=18;
for i:=1 to 10 do //если i равно от 1 до 10 то
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 //если i равно от 1 до 10 то
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