Re: круг
- From
- Ivan Storogev ()
- To
- Alexandr Gavrilov
- Date
- 2002-06-24T03:38:59Z
- Area
- RU.ALGORITHMS
From: Ivan Storogev <rezeda@dol.ru>
Привет Alexandr,
Friday, June 21, 2002, 5:52:42 PM, вы писали:
AG> Пpивет, All !
AG> Подcкажите алгоритм равномерного движения точки по окружноcти радиуcом R.
Недавно отвечал в этой эхе на аналогичный вопрос, так что цитирую сам себя:
Классический алгоритм поворота, в нем 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)