Помощь - Поиск - Пользователи - Календарь
Полная версия: графика
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
trew
помогите переделать написану мной программу. чтобы я мог ввести радиус и 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я
Цитата
5угольник менялся с нем

менялся с кем? и Как менялся?
trew
десь в задаче радиус не надо вводить. а надо сделать чтобы мог. когда введу то 5угольник тоже должен изменится
volvo
Если б ты еще задание привел, то было бы вообще прекрасно... Тебе что, надо в разноцветном круге крутить разноцветный пятиугольник? Тогда смотри в сторону 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
почемуто не крутит и вообще просто круг рисует
volvo
Я не знаю, почему у тебя не крутит, и рисует только круг. У меня отрабатывает как я написал. Попробуй увеличить задержку (до 25000, скажем), может ты просто не видишь процесса вращения. Но пятиугольник обязан был отрисоваться в любом случае.
trew
не рисует
Lapp
Цитата(trew @ 7.12.2008 20:47) *
не рисует
В следующем посте, по-видимому, будет просто "не" smile.gif

trew, ты давай немного больше информации по проблеме, если хочешь получить ответ. Мне кажется, это в твоих интересах. И так народ в этой теме гадает, что тебе нужно, по твоим крайне невразумительным фразам..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.