[an error occurred while processing this directive]
для всех остальных углов "крутить квадранты"
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено fontp 21 апреля 2006 г. 17:32
В ответ на: Да неплохо,а для угла от 45 град до 90 какую подскажешь апроксимацию? отправлено <font color=gray>ssassh</font> 21 апреля 2006 г. 17:28

примерно так

SFLOAT arctg2 (SFLOAT SIN, SFLOAT COS)
// 0 <= arctg2 <= 2*M_PI
{
SFLOAT ret = 0.0;
if (COS > +1E-10) {
if (SIN > +COS) {
ret = (+M_PI/2.0 - arctg1 (COS/SIN));
}else if (SIN < -COS) {
ret = (+3.0*M_PI/2.0 - arctg1 (COS/SIN));
}else { // |SIN| < |COS|
if (SIN >= 0.0) {
ret = arctg1 (SIN/COS);
}else { // SIN < 0
ret = 2.0*M_PI + arctg1 (SIN/COS);
}
}
}else if (COS < -1E-10) {
if (SIN < +COS) { // SIN < 0, |SIN| > |COS|
ret = (+3.0*M_PI/2.0 - arctg1 (COS/SIN));
}else if (SIN > -COS) { // SIN > 0, |SIN| > |COS|
ret = (+M_PI/2.0 - arctg1 (COS/SIN));
}else { // |SIN| < |COS|
ret = (M_PI + arctg1 (SIN/COS));
}
}else {
if (SIN > 0.0) {
return +M_PI/2.0;
}else {
return +3.0*M_PI/2.0;
}
}
return ret;
}/*arctg2*/

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru