|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.04.2007, 12:07 | #1 |
Пользователь
Регистрация: 27.03.2007
Сообщений: 37
|
Движение по окружности
Привет всем!
Мужики выручте Используя компонент TShape и компонент TTimer как спомощь вот этого примера var ang, //текущее положение в радианах spd, //скорость (на сколько радиан передвигать каждый раз) rad: Double; //радиус окружности cx, cy, //координаты центра окр. x, y: Integer; //текущие коорд. точки procedure TForm1.Timer1_Timer(Sender: TObject); begin Canvas.Pixels[x, y]:=clBtnFace; ang:=ang + spd; x:=cx + Round(Cos(ang) * rad); y:=cy + Round(Sin(ang) * rad); Canvas.Pixels[x, y]:=clBlack; end; можно заставить один Shape вращатся вокруг Второго Shapa используя Timer Заранее благодарю |
12.04.2007, 14:41 | #2 |
Студент
Форумчанин
Регистрация: 10.11.2006
Сообщений: 196
|
Определяем координаты оси вращения:
Код:
Код:
Visita Interiorem Terrae Rectificando Operae Lapidem...
Последний раз редактировалось Сильванович Михаил; 12.04.2007 в 18:02. |
12.04.2007, 21:31 | #3 |
Пользователь
Регистрация: 27.03.2007
Сообщений: 37
|
Спасибо
Красавчик Михаил все получилось, а ты не мог бы подсказать как вот в этом примере сделать так чтобы Shape перемещался плавно, а то Shape через большой интервал перемещается
Procedure Dvij; Begin if Form1.Shape1.Width>Form1.Shape1.Hei ght then k:=Form1.Shape1.Width else k:=Form1.Shape1.Height; cx:=Form1.Shape1.Left+Form1.Shape1. Width div 2; cy:=Form1.Shape1.Top+Form1.Shape1.H eight div 2; //k:=k div 2; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Dvij; ang:=ang + spd; Shape2.Left:=cx + Round(Cos(ang) * k); Shape2.Top:=cy + Round(Sin(ang) * k); end; procedure TForm1.FormCreate(Sender: TObject); begin ang:=10; spd:=50; end; end. Я пока ещё новичек в программирование Выручи! Зарание Благодарен. |
13.04.2007, 16:24 | #4 | |
Студент
Форумчанин
Регистрация: 10.11.2006
Сообщений: 196
|
Ну, ты двинул!
Цитата:
По поводу интервала - у TTimer есть свойство определяющее промежуток времени через который будет повторяться заданная процедура - ставь 50-300 мс - и будет тебе счастье!
Visita Interiorem Terrae Rectificando Operae Lapidem...
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
построение окружности по 3 точкам в Delphi | ксона | Помощь студентам | 16 | 12.12.2009 17:14 |
Движение фигуры по окружности | &RiU | Помощь студентам | 3 | 31.10.2009 20:39 |
Движение окружности и отрезка. | Ev@ngel | Компоненты Delphi | 0 | 18.04.2008 22:16 |
Движение кнопки по окружности | Инна | Помощь студентам | 10 | 22.04.2007 19:32 |
Анимация. Движение по окружности. | Albenous | Общие вопросы Delphi | 1 | 11.04.2007 14:57 |