1-ый класс для Буратин

1-ый класс для Буратин (/index.php)
-   Спам (/forumdisplay.php?f=46)
-   -   Всем кто юзает паскаль... (/showthread.php?t=1346)

Стражник 04.12.2007 12:43

Хэлп. Решите задачу, нам училка задала, чёт никак не получается. Постройте на экране компьютера две окружности радиусов R1 и R2 (можно сразу взять какие хочеш).имитируя движени одной окружности по другой. Короч типа один круг, а по нему движется другой. Кто может решите плиз!

Hexx 04.12.2007 15:54

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.
ферштейн? =)
написал бы прогу сразу, но паскалей так много разных, а универские как правило такие дурацкие... если сам не осилишь - присылай сцылко на паскаль, попробую сам сделать. но это на крайняк - я, понимаете ли, ленив. особенно по части рутины, особенно по части не своей рутины. =РРР

Стражник 05.12.2007 11:58

Спасиб. Дальше сам сделаю.


Текущее время: 03:17. Часовой пояс GMT.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot