|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Ivan Storogev 2:5020/400 24 Jun 2002 03:38:59 To : Alexandr Gavrilov Subject : Re: круг -------------------------------------------------------------------------------- Привет Alexandr, Friday, June 21, 2002, 5:52:42 PM, вы писали: AG> Пpивет, All ! AG> Подcкажите алгоритм равномерного движения точки по окружноcти радиуcом R. Hедавно отвечал в этой эхе на аналогичный вопрос, так что цитирую сам себя: Классический алгоритм поворота, в нем 4 умножения и 2 сложения на итерацию: //Входные данные //R -- радиус //alpha -- шаг в радианах //Инициализация S := sin(alpha); C := cos(alpha); x := 0; y := R: //Главный цикл loop xt := x; yt := y; x := xt*C - yt*S; y := yt*C + xt*S; end loop; Вот, взятый из книжки Р. Брейсуэлла "Преобразование Хартли", алгоритм, в нем 3 умножения и 3 сложения на итерацию: //Инициализация x := 0; y := R; dSin := sin(alpha); dTg := tg(alpha/2); //Главный цикл loop temp := y+x*dTg; x := x - temp*dSin; y := x*dTg + temp; end loop Если вас интересует целочисленная арифметика, приглядитесь к алгоритмам рисования окружности, например Брезенхема. Правда в известных мне вариантах получается _неравномерное_ вращение. -- Всех благ, Иван. Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: KKK (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/15066bfab053.html, оценка из 5, голосов 10
|