Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2011, 22:44   #1
Natasha190989
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 10
Восклицание Передвижение объектов.

Помогите переделать программу, чтобы окружность вписанная в треугольник перемещалась по экрану. Необходимо использовать объеты и классы
uses crt,graph;
Type
Location=Object
x,y:integer;
procedure Create(NewX,NewY:integer);
function GetX:integer;
function GetY:integer;
end;
{реализация}
procedure Location.Create(NewX,NewY:integer);
begin
x:=NewX;
y:=NewY;
end;
function Location.GetX;
begin
GetX:=x;
end;
function Location.GetY;
begin
GetY:=y;
end;
Type
Point=Object(Location) {точка}
Visible:boolean;
constructor Create(NewX,NewY:integer);
procedure Show;virtual;
procedure Hide;virtual;
procedure MoveTo(NewX,NewY:integer);virtual;
end;
constructor Point.Create(NewX,NewY:integer);
begin
Location.Create(NewX,NewY);
Visible:=false;
end;
procedure Point.Show;
begin
visible:=true;
PutPixel(x,y,GetColor);
end;
procedure Point.Hide;
var tmpColor:integer;
begin
tmpColor:=GetColor;
visible:=false;
SetColor(GetBkColor);
PutPixel(x,y,GetColor);
SetColor(tmpColor);
end;
procedure Point.MoveTo(NewX,NewY:integer);
begin
Hide;
x:=NewX;
y:=NewY;
Show;
end;

Type
Figure=Object(Point)
r,a:integer;
constructor Create(NewX,NewY,NewR,NewA:integer) ;
procedure Show;virtual;
procedure Hide;virtual;
{procedure MoveTo(NewX,NewY:integer);virtual;}
end;
constructor Figure.Create(NewX,NewY,NewR,NewA:i nteger);
begin
Point.Create(NewX,NewY);
r:=NewR;
a:=NewA;
end;
procedure Figure.Show;
begin
visible:=true;
Graph.Circle (x, y, r);
Graph.line(x-r,a div 2 +y, x-r, y-a div 2);
line(x-r,y-a div 2, x + round(sqrt (sqr(3*r)+ sqr(a) div 4)), y);
line(x-r,a div 2 +y, x + round(sqrt (sqr(3*r)+ sqr(a) div 4)), y);
end;
procedure Figure.Hide;
var tmpColor:integer;
begin
visible:=false;
tmpColor:=GetColor;
SetColor(GetBkColor);
Graph.Circle (x, y, r);
Graph.line(x-r,a div 2 +y, x-r, y-a div 2);
line(x-r,y-a div 2, x + round(sqrt (sqr(3*r)+ sqr(a) div 4)), y);
line(x-r,a div 2 +y, x + round(sqrt (sqr(3*r)+ sqr(a) div 4)), y);
end;
var grDriver,grMode,ErrCode:integer;
f:figure;
begin
grDriver:=Detect;
InitGraph(grDriver,grMode,'');
ErrCode:=GraphResult;
if ErrCode=grok then
begin
cleardevice;
SetColor (red);
f.Create(100,100,50,133);
f.Show;
readln;
f.MoveTo(30,30);
readln;
CloseGraph;
end
else writeln(GraphErrorMsg(ErrCode));
end.
Natasha190989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передвижение объектов с изменением текста Alexei89 Мультимедиа в Delphi 0 03.04.2011 02:31
передвижение по документу dimonnnn JavaScript, Ajax 0 14.08.2010 21:13
Плавное передвижение курсора W0LF Общие вопросы Delphi 20 12.01.2010 21:07
Передвижение фигур rododendron Общие вопросы C/C++ 1 01.06.2009 20:38
Передвижение формы JIK Помощь студентам 2 12.07.2008 17:45