Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
#1

Тригонометрия - C++

25.03.2014, 15:23. Просмотров 893. Ответов 13
Метки нет (Все метки)

Здравствуйте. Есть необходимость работать с тригонометрией, но проблема в том, что углы не стандартны.
Разница в том, что у меня значения углов лежат не в (0;360], а в (0;4096]. sin cos требует радианы, певод в радианы - A*PI/180, где А-угол в градусах, а PI - это число пи. Правильно ли я понимаю, что чтобы преобразовать в радианы мои углы, нужно делить не на 180, а на 2048 - половину от максимального ушла? Если нет, то как правильно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2014, 15:23     Тригонометрия
Посмотрите здесь:

Тригонометрия - C++
КАК найти значение выражения arcsin (формула какая нибудь)

С++ тригонометрия - C++
в общем не знаю как записать формулу в С++ тригонометрическую, пожалуйста помогите z=cos(в квадрате) ((3/8)pi-(alfa/4))-cos (в квадрате)...

тригонометрия - C++
ну собственно программа вызывает функцию на ассемблере,которая вызывает 2 функции на си.результат выводит функцию которую вызывали(то есть...

Тригонометрия и обратная польская запись - C++
Как работает польская запись - понятно, однако как добавить к примеру sin(a), чтобы его не выводило, как sina, а чтобы просто посчитало?

Написать программу, производящую вычисления по заданной формуле (тригонометрия, простые циклы) - C++
(100+10 cos 0.1)(100+10cos0.2)....(100+10 cos10) Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы,...

Тригонометрия - Алгебра
решить уравнение и найти его корни на промежутке √3*sin(2x)+2*sin^2(x)-1=2*cosx

Тригонометрия - Алгебра
Легчайший пример, но в условии нет уточнения где находится угол. Поэтому у меня получается два ответа 2, 10. А правильно должно получиться...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
25.03.2014, 15:28     Тригонометрия #2
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Правильно ли я понимаю, что чтобы преобразовать в радианы мои углы, нужно делить не на 180, а на 2048 - половину от максимального ушла?
По ходу да, главное что бы углы тоже были в диапазоне 0 - 4096 потому-что ваши углы с вашим делителем
http://www.cyberforum.ru/cgi-bin/latex.cgi?(A*11.97*PI)/(180*11.97)
преобразуется в привычное глазу
http://www.cyberforum.ru/cgi-bin/latex.cgi?(A*PI)/180
0x10
25.03.2014, 15:30
  #3

Не по теме:

А из каких соображений единицы измерения вдруг нестандартные?

dimcoder
25.03.2014, 15:40
  #4

Не по теме:

Месье знает толк в извращениях.
Хотя мне тоже интересно стало.

zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
25.03.2014, 15:41     Тригонометрия #5
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Правильно ли я понимаю, что чтобы преобразовать в радианы мои углы, нужно делить не на 180, а на 2048
Не правильно, 4096 градусов это 11 полных кругов по 360 градусов + 136 градусов.
Так что берем остаток от деления на 360 и умножаем на Pi/180
0x10
25.03.2014, 15:47
  #6

Не по теме:

zss, да мне вот показалось, что у него 4096 - это не в градусах, а полный круг разделен на 4096 сегментов.

Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
25.03.2014, 15:49  [ТС]     Тригонометрия #7
Цитата Сообщение от dimcoder Посмотреть сообщение
главное что бы углы тоже были в диапазоне 0 - 4096
У меня функция выглядит, как
C++
1
SIN=sin((A&4095)*PI/2048);
Так здесь порядок. Спасибо за помощь.

Добавлено через 1 минуту
Цитата Сообщение от zss Посмотреть сообщение
Не правильно, 4096 градусов
Вы меня не правильно поняли, как сказали далее
Цитата Сообщение от 0x10 Посмотреть сообщение
да мне вот показалось, что у него 4096 - это не в градусах, а полный круг разделен на 4096 сегментов
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
25.03.2014, 15:51     Тригонометрия #8
Цитата Сообщение от zss Посмотреть сообщение
Не правильно, 4096 градусов это 11 полных кругов + 136 градусов.
Я извиняюсь, в первом посте не 11.97, а 11.37 (опечатался). Если перед переводом в радианы обычным методом самопальные градусы делить на 11.37, то все ок. Ну или (4096*Pi)/(2048), т.к.
(4096*Pi)/(2048) = (360*11.37*Pi)/(180*11.37) = (360*Pi)/(180)
У него просто 4096 градусов - это и есть один круг.
zss
Модератор
Эксперт С++
6322 / 5906 / 1913
Регистрация: 18.12.2011
Сообщений: 15,189
Завершенные тесты: 1
25.03.2014, 15:55     Тригонометрия #9
Цитата Сообщение от dimcoder Посмотреть сообщение
4096 градусов - это и есть один круг
Использование нестандартных единиц измерения чревато....
Не надо тогда называть их градусами, а так и писать: A/4096 частей круга.
Сразу видно, что полный круг равен 4096. К радианам приводим деля на 2048 и умножая на pi.
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
25.03.2014, 16:09  [ТС]     Тригонометрия #10
Цитата Сообщение от 0x10 Посмотреть сообщение
А из каких соображений единицы измерения вдруг нестандартные?
Цитата Сообщение от dimcoder Посмотреть сообщение
Месье знает толк в извращениях.
Хотя мне тоже интересно стало.
Таблицы синусов-косинусов. Заполняем массивы SIN и COS из 4096 элементов. Получаем значение -
C++
1
res_sin=SIN[A];
Пытаюсь ускорить графику.

Добавлено через 2 минуты
Цитата Сообщение от zss Посмотреть сообщение
Не надо тогда называть их градусами
Если мне не изменяет память, я не называл свои варианты углов градусами ;-)
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,013
25.03.2014, 16:11     Тригонометрия #11
Premature optimization = http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{\forall{evil}}
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
25.03.2014, 16:15  [ТС]     Тригонометрия #12
Цитата Сообщение от zss Посмотреть сообщение
Использование нестандартных единиц измерения чревато
Если не знать в каких единицах задавать угол, то да.

Добавлено через 2 минуты
Цитата Сообщение от 0x10 Посмотреть сообщение
Premature optimization =
Есть что-то быстрее?) Может велосипед уже есть, а я тут фигнёй страдаю?
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,013
25.03.2014, 16:18     Тригонометрия #13
Просто я думаю, что если что-то действительно тормозит, то тригонометрические функции стандартной библиотеки - последнее, что нужно оптимизировать. Когда уже и так все заоптимизировано. Если есть конкретный бенчмарк, который показывает, что именно они отнимают большую часть вычислений - тогда ок. Но это уже другая тема.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 16:29     Тригонометрия
Еще ссылки по теме:

Тригонометрия - Алгебра
как решить? sin\alpha -2cos\alpha =1/4

Тригонометрия - Алгебра
Sinx + sin9x=2

Тригонометрия - Алгебра
Привет всем, итак вопрос, возможно глупый, но важный для меня :) вот как представить "синус в квадрате икс" {sin}^{2}x, что мне нужно...

Тригонометрия - Алгебра
Sinx*sin5x=1 Как разложить sin5x не понимаю

тригонометрия - Delphi
y=x^2+cos(x)-2 помогите создать график этой функции.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
25.03.2014, 16:29  [ТС]     Тригонометрия #14
Цитата Сообщение от 0x10 Посмотреть сообщение
тригонометрические функции стандартной библиотеки - последнее, что нужно оптимизировать
Взятие значения из таблицы по сравнению со стандартной тригонометрией на моём железе в 20 раз быстрее. Тригонометрию в проекте планирую использовать усиленно, так что да, это необходимая мера.

Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от Retyrn0 Посмотреть сообщение
усиленно
это сотни тысяч - десятки миллионов раз в секунду.

Yandex
Объявления
25.03.2014, 16:29     Тригонометрия
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru