Показать сообщение отдельно
Аватар для Hexx
  post #2  
Старый 04.12.2007, 15:54
Hexx
Гость
 
Инфа о юзере
По умолчанию
r - радиус cx - X координата центра cy - Y координата центра
нулевая точка по традиции в верхнем левом углу экрана
координаты точки на окружности в зависимости от угла отклонения от оси Y проходящей через центр окружности вычисляются по формулам:
x = r * Sin(angle) + cx y = r * Cos(angle) + cy
соответственно увеличивая angle в промежутке от [0; 2 * Pi] получится движение по окружности.
остальное дело техники:
пишешь функцию, которая возвращает координаты точки на окружности в зависимости от координат центра, радиуса и угла отклонения. (скажем GetCirclePoint)
пишешь процедуру рисования окружности которая будет в цикле от нуля до двух пи с шагом каким тебе приемлемо, вызывать GetCirclePoint и рисовать там точку (прямую с прошлой точки до этой).
дальше рисуешь главную окружность. и снова в цикле от нуля до двeх пи с приемлемым шагом вызывая GetCirclePoint перерисовываешь окружность2 в новом месте с ценром на окружности1.
ферштейн? =)
написал бы прогу сразу, но паскалей так много разных, а универские как правило такие дурацкие... если сам не осилишь - присылай сцылко на паскаль, попробую сам сделать. но это на крайняк - я, понимаете ли, ленив. особенно по части рутины, особенно по части не своей рутины. =РРР
Ответить с цитированием