|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.04.2011, 22:44 | #1 |
Пользователь
Регистрация: 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передвижение объектов с изменением текста | 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 |