Показать сообщение отдельно
  #2  
Старый 26.05.2010, 20:03
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,098
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тут очень интересный вопрос - а как он должен двигаться?
Это вращение или именно движение по окружности?

Если это вращение, то тебе надо сделать пересчет координат в зависимости от угла поворота вокруг некоторого центра вращения. Тут собственно именно преобразование координат.

Если это именно движение по окружности (фактически, сдвиг), то вспоминаем формулу окружности x^2 + y^2 = R^2, где x и y - точки отностительно центра. Если центр окружности находится в точке x0, y0, то формула принимает вид:

(x - x0)^2 + (y - y0)^2 = R^2.

соответсвенно, преобразовав эту формлу в вид y = F(x), ты получишь возможность считать смещение координат.

Теперь о технической части.

Тебе нужна процедура, которая принимает некоторую базовую точку (ее координаты) и рисует относительно ее ромб. Далее, во внешней части программы тебе нужен цикл по х от х0-R до x0+R, где R - расстояние от x0,y0 (центр окружности) до базовой точки ромба. Внутри цикла считаем координату y и далее с полученными значениями x и y вызываем отрисовку ромба. Рисовать лучще всего на TPaintBox.
Ответить с цитированием