необходимо создать программу *мяатник* используя видео страницы!
хотел обсудить как это сделать! (надо написать 2 вырианта с объетом и без)
1. без объектов нарисовать маятник (шарик и палочку) в левом и правом положении и поочерёдно менять... так лучше???
2. создать объект .........может создать массив с координами..??? подскажите как лучше?
и если есть примеры программ с использванием видеостраниц кинь те мне ! буду очень благодарен! просто не стакивался в своей практике с видеостраницами и не умею с ними работать....а надо уметь :yessss:
program mayatnik(input,output);
uses crt,graph;
var a,b,c,d,y,r,i,x:integer;
procedure risunok;
begin
setfillstyle(9,red);
setcolor(red);
line(300,100,300+x,100-y);
circle(300+x,105-y,5);
floodfill(300+x,105-y,red);
end;
procedure risunokfill;
begin
setcolor(green+blue);
setfillstyle(1,green+blue);
line(300,100,300+x,100-y);
circle(300+x,105-y,5);
floodfill(300+x,105-y,green+blue);
end;
procedure pravoL;
beginfor x:=-60to0dobeginif keypressed then exit;
y:=round(-sqrt(40000-sqr(x)));
risunok;
if x>=-15then i:=i+1;
delay(40-i);
risunokfill;
end;
end;
procedure pravoR;
beginfor x:=0to60dobeginif keypressed then exit;
y:=round(-sqrt(40000-sqr(x)));
risunok;
if x>=30then i:=i+1;
delay(40+i);
risunokfill;
end;
end;
procedure vlevoR;
beginfor x:=60downto0dobeginif keypressed then exit;
y:=round(-sqrt(40000-sqr(x)));
risunok;
if x<=15then i:=i+1;
delay(40-i);
risunokfill;
end;
end;
procedure vlevoL;
beginfor x:=0downto -60dobeginif keypressed then exit;
y:=round(-sqrt(40000-sqr(x)));
risunok;
if x<=-30then i:=i+1;
delay(40+i);
risunokfill;
end;
end;
begin
clrscr; {очистка экрана}
initgraph(a,b,'');
setbkcolor(green+blue);
setlinestyle(0,0,3);
line(280,100,320,100);
setlinestyle(0,0,0);
delay(1000);
ellipse(300,100,250,290,211,211);
repeat
i:=1; pravoL;
i:=1; pravoR;
i:=1; vlevoR;
i:=1; vlevoL;
until keypressed;
closegraph;
end.
да не очень подходит мне =( ...
klem4
27.09.2005 0:13
Цитата(punkska @ 26.09.2005 20:59)
да не очень подходит мне =( ...
почему ?;)))
на тебе версию попрощe )))))))
uses crt, graph;
function GrInit : boolean;
var
gd, gm, ge : integer;
begin
gd := VGA;
gm := VGAHi;
InitGraph(gd, gm, '');
ge := GraphResult;
if ge<>grOk then
writeln('Graph Error N ', GraphErrorMsg(ge));
GrInit := (ge=grOk);
end;
procedure AnimGo;
var
i, x, y : word;
begin
x := GetMaxX div2;
y := GetMaxY div2;
repeat
i := x-100;
while(i<=x+100) dobegin
SetActivePage(1);
SetVisualPage(1);
Line(x, 0, i, y);
Circle(i, y, 30);
SetActivePage(0);
SetVisualPage(0);
inc(i,10);
delay(50);
ClearDevice;
end;
while(i>=x-100) dobegin
SetActivePage(1);
SetVisualPage(1);
Line(x, 0, i, y);
Circle(i, y, 30);
SetActivePage(0);
SetVisualPage(0);
dec(i,10);
delay(50);
ClearDevice;
end;
until keypressed;
end;
Beginif GrInit then
AnimGo;
readln;
End.
не уверен правдо что все по уму, видео страницы не юзал никогда + без красивостей, да и сократить можно раза в 2
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.