Показать сообщение отдельно
Старый 15.11.2012, 19:44   #1 (permalink)
Алекс375
Новичок
 
Регистрация: 15.11.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль, масштабирование фигуры

вот код программы моей, что неверно? что то в конце нужно добавить или как. фигура должна увеличиваться с нажатием клавиши Enter и обратно уменьшаться..

Код:
Uses Graph,CRT;
var
Driver, Mode:Integer;
x,y,a,d:integer;
Xs,Ys:string;
k:char;
begin
Driver:=Detect;
InitGraph(Driver,Mode,' ');
if GraphResult <> grOk then Halt(1);
x:=100;
y:=100;
a:=20;
repeat
SetColor(10);
Circle(x+165,y+164,30);
Rectangle(x+115,y+115,x+215,y+215);
Line(x+230,y+230,x+100,y+100);
LineTo(x+100,y+230);
LineTo(x+230,y+100);
Rectangle(x+230,y+230,x+100,y+100);
Circle(x+165,y+117,18);
Circle(x+118,y+162,18);
Circle(x+213,y+162,18);
Circle(x+167,y+212,18);
SetColor(0);
Str(x,Xs);
Str(y,Ys);
SetColor(5);
OutTextXY(300,150,'x='+Xs+':y='+Ys);
k:=ReadKey;
SetColor(0);
Circle(x+Round(165*d),y+Round(164*d),a+Round(30*d));
Rectangle(x+Round(115*d),y+Round(115*d),x+Round(215*d),y+Round(215*d));
Line(x+Round(230*d),y+Round(230*d),x+Round(100*d),y+Round(100*d));
LineTo(x+Round(100*d),y+Round(230*d));
LineTo(x+Round(230*d),y+Round(100*d));
Rectangle(x+Round(230*d),y+Round(230*d),x+Round(100*d),y+Round(100*d));
Circle(x+Round(165*d),y+Round(117*d),a+ROund(18*d));
Circle(x+Round(118*d),y+Round(162*d),a+Round(18*d));
Circle(x+Round(213*d),y+Round(162*d),a+Round(18*d));
Circle(x+167,y+212,18);
SetColor(0);
Str(x,Xs);
Str(y,Ys);
SetColor(0);
OutTextXY(300,150,'x='+Xs+':y='+Ys);
if k=#77 then x:=x+10;
if k=#75 then x:=x-10;
if k=#72 then y:=y-10;
if k=#80 then y:=y+10;
if k=#13 then a:=a+10;
if k=#8 then a:=a-10;
until k=#27;
CloseGraph;
end.
Алекс375 вне форума   Ответить с цитированием
Ads

Яндекс

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