помогите переделать написану мной программу. чтобы я мог ввести радиус и 5угольник менялся с нем
program z2; uses crt, graph; var dr,mode,i,n,r:integer; begin randomize; dr:=detect; mode:=0; initgraph(dr,mode,'c:\tp\bgi'); circle(300,240,50); moveto(300,190); lineto(350,230); lineto(225,283); lineto(275,283); lineto(250,230); lineto(300,190); r:=0; n:=2; for i:=0 to 70 do begin delay(45000); if i=r then if n=1 then begin cleardevice; circle(300,240,50); setfillstyle(1,random(r+1)); floodfill(290,192,white); moveto(300,190); lineto(350,230); lineto(325,283); lineto(275,283); lineto(250,230); lineto(300,190); setfillstyle(1,random®); floodfill(300,240,white); n:=2;r:=r+10; end else if n=2 then begin cleardevice; circle(300,240,50); setfillstyle(1,random®); floodfill(290,192,white); moveto(300,290); lineto(255,260); lineto(270,200); lineto(330,200); lineto(345,260); lineto(300,290); setfillstyle(1,random®); floodfill(300,240,white); n:=1; r:=r+10; end; end; readln; closegraph; end.
.
Ozzя
26.11.2008 17:11
Цитата
5угольник менялся с нем
менялся с кем? и Как менялся?
trew
26.11.2008 17:56
десь в задаче радиус не надо вводить. а надо сделать чтобы мог. когда введу то 5угольник тоже должен изменится
volvo
26.11.2008 19:55
Если б ты еще задание привел, то было бы вообще прекрасно... Тебе что, надо в разноцветном круге крутить разноцветный пятиугольник? Тогда смотри в сторону DrawPoly/FillPoly, и не надо жестко задавать точки, достаточно их высчитывать перед отрисовкой. Вот набросок, добавишь закрашивание круга:
program z2;
uses crt, graph;
const points = 5; var T: pointtype; pts: array[1 .. points + 1] of pointtype; centerx, centery, C, i, j, R: integer; angle, start_angle: real;
gd, gm: integer;
begin r := 100; { <--- Можешь и вводить }
randomize; gd := detect; initgraph(gd, gm, '');
centerx := getmaxx div 2; centery := getmaxy div 2;
for i := 1 to 5 do begin cleardevice; setcolor(white); circle(centerx, centery, R); { <--- Здесь надо закрасить круг нужным цветом }
if odd(i) then start_angle := 54 else start_angle := 18; for j := 1 to points do begin angle := (start_angle + pred(j) * (360 div points)) * (Pi / 180); pts[j].X := centerx + trunc(R * cos(angle)); pts[j].Y := centery + trunc(R * sin(angle)); end; pts[points + 1] := pts[1];
C := random(16); setfillstyle(solidfill, C); fillpoly(points + 1, pts);
delay(1000); end; readln; closegraph; end.
(проверялось в Турбо Паскале. В 32-битных работает не совсем корректно, так что просьба обладателей FPC сразу не кидаться камнями, этот код - именно для Турбо)
trew
1.12.2008 23:06
почемуто не крутит и вообще просто круг рисует
volvo
1.12.2008 23:12
Я не знаю, почему у тебя не крутит, и рисует только круг. У меня отрабатывает как я написал. Попробуй увеличить задержку (до 25000, скажем), может ты просто не видишь процесса вращения. Но пятиугольник обязан был отрисоваться в любом случае.
trew
8.12.2008 0:47
не рисует
Lapp
8.12.2008 15:18
Цитата(trew @ 7.12.2008 20:47)
не рисует
В следующем посте, по-видимому, будет просто "не"
trew, ты давай немного больше информации по проблеме, если хочешь получить ответ. Мне кажется, это в твоих интересах. И так народ в этой теме гадает, что тебе нужно, по твоим крайне невразумительным фразам..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.