каким образом перевести в arduino тангенс в градусы????
- Войдите на сайт для отправки комментариев
Ср, 03/04/2013 - 20:26
Пока идея только сделать значения для вснх 90 градосов через if. Может есть какой нибудь более рациональный способ для вычисления градусов с тангенса
http://uchim.org/matematika/tablica-bradisa придется через if вносить все значения с таблицы. В значениях никакой системности не увидел.Подскажите если есть другое решение моей задачи. есть тангенс (х)=(это значение есть) хочу получать градусы.
Arduino - Tan
Arduino - MathHeader
Подскажите если есть другое решение моей задачи. есть тангенс (х)=(это значение есть) хочу получать градусы.
В школе это называлось арктангенс.
все ссылки смотрел до этого, но всеравно не догнал.
tg(A)=2.5 как с этих 2.5 получить градус. если можно пример.
мне неважно с чего с тангенса котангенса синуса косинуса главное получить на выходе градусы
Радиан у меня нет есть тока значение tg(A)=2.5 кроме таблицы брадиса ниче не могу придумать. Все примеры просят радианы.
Подскажите если есть другое решение моей задачи. есть тангенс (х)=(это значение есть) хочу получать градусы.
В школе это называлось арктангенс.
и что дальше??? я не спрашиваю что и как называлось я задал конкретный вопрос.
> но всеравно не догнал.
Тут скорее проблема в arduino/c++, а в теме "тригонометрические функции".
У вас есть две задачи.
1. Воспользоватся функцией обратной тангенсу. Вот та самая, которую вам назвали, как она называется в школе. Это арктангенс. В C++ она имеет имя atan (есть во второй моей ссылке). Она и вернет вам искомый угол.
2. Так как все тригнометрические функции в C++ работают в радианах, то угол вы получите в радианах. Осталась перевести радианы в градусы. Если школьная геометрия подзабылось, то можно просто вспоинмть, что полный круг, это 2*Pi, значит 180град=Pi, ну а дальше уже по обычной пропорции можно посчитать
180 <--> Pi
valueInGrad <-->valueInRadian
Получаем
valueInGrad=(180*valueInRadian)/Pi
Мысленно подставим сюда известный нам угол. Скажем Прямой угл. Это Pi/2, (180*Pi/2)/Pi=90 градусов. Все верно, формула работает.
Значит вам, в итоге, нужно
Только, при этом, опять-таки из школы, нужно вспомнить, что функция арнтангенс - не однозначаня функция. Взгяните на график функции тангенс
Видите? Зная y (это "это значение есть"), нельзя однозначно сказать чему был равен x (угол который вы ищите). Скажем "это значение есть 0 " может означать как и угол "0 градусов", так и угол 180-градусов.
Функция atan - всегда возращает угол в диапазоне -Pi/2 до Pi/2, но реальный угол может быть больше или менше ровно 180/360/540/720 и т.д.
Вообщем математика не позволяет однозначно дать ответ на вопрос "какой угол?", зная только тангенс. Выяснять "диапазон" - нужно из какой-нибудь дополнительный инфы. А уж "в диапазоне" - тут atan вам поможет.
Подскажите если есть другое решение моей задачи. есть тангенс (х)=(это значение есть) хочу получать градусы.
В школе это называлось арктангенс.
и что дальше??? я не спрашиваю что и как называлось я задал конкретный вопрос.
А дальше - подумайте что делать с тем ответом который вы получили. А вдруг он полезен? Не просто же так сказали. Раз подсказали "как называется", то и загуглить не грех что это такое. Почему-то же это сказали.
Берете и гуглите. "c++ арктангенс". И быстро находите что в C++ для его вычисления используется atan() (а возможно стоит погуглить что такое арктангенс вообще и какие его свойсва, раз забылось).
Там в описании прочитает "возвращает значение в радианах". Гуглим "как перевести радианы в градусы". Ну и все.
Как видите самое главное - дать направление человек вам дал. Все что нужно для решения- после его ответа у вас есть. Сказал "как называется", а уж что не "выложил на блюде" - так и извините, вроде как и не обязан.
P.S. Вы думаете я все напамять знаю? Я просто взял, загуглил и освежил память. Ну разве что "называется оно арктангенс" - я изначально помнил.
спасибо за помощь все решилось через синус. Я имел 2 стороны и 1 угол. нашел 3 сторону потом синус и нужный мне угол.
спасибо за помощь все решилось через синус. Я имел 2 стороны и 1 угол. нашел 3 сторону потом синус и нужный мне угол.
Очень интерестно. Как зная тангенс угла, можно с помощью функции синус узнать сам угл в градусах?
Ну, предположи с помощью
tg α · ctg α = 1 и 1 + ctg² α = 1 ÷ sin² α
мы из тангенса узнаем значение синуса угла. Но ведь дальше, что-бы получить сам угл нам нужен будет арксинус. А потом, все равно переводить радианы в градусы.
То есть - ровно то же самое (только вместо atan() будет asin()), плюс дополнительные шаги по вычислению синуса.
Или вы нашли какой-то более прямой путь?
P.S. Или вы решали какую-то совсем другую задачу, а не ту которую описали
ТС,
180 градусов равно Пи радиан.
Пи равно 3,141592653589.
вход double tanvalue=1;
выход double ugolVgradusah=atan(tanvalue) *180 /пи ; // = 45 градусов
Да тут, судя по всему, треугольник-то прямоугольный был. Так что по двум сторонам найти третью - даже без упомянутого угла - что штаны надеть. Пифагоровы.
Совершенно верно. Думал что с тангенсом самый простой способ. оказалось что нет
не иначе калькулятор пишем :)
leshak, функция atan определена на всей числовой прямой
leshak, функция atan определена на всей числовой прямой
...являясь при этом классическим примером неоднозначной (кокретно - периодической) функции, т.е. имея при этом бесконечное количество значений функции Y для любого аргумента X.
В качестве иллюстрации:
X=0: Y=...,-3*Pi,-2*Pi,-Pi,0,Pi,2*Pi,3*Pi,...
Совершенно верно. Думал что с тангенсом самый простой способ. оказалось что нет
Так покажите же более простой способ. Ну реально же интерестно. Как ни кручу в голове/гугле, а все пути решения, если треугольник не прямоугльный (равнобедренный), в общем случае - через какую-нибудь арк-функцию (atan(), acos(), asin(), в итоге, проходят).
не иначе калькулятор пишем :)
leshak, функция atan определена на всей числовой прямой
Если вы говорите именно про функцию atan() - то да. График верный. Если же про математически - то не верный. Эта красная линия дублируется сверху и снизу - бесконечное число раз.
И вы перепутали "определена" (это да, это вы верно сказали, так и есть) и "однозначна" - а вот это нет. Просто сиш-ные функции умеет возвращать только одно значение, а никак не бесконченое :)
тут как у функции "квадрат" и "корень". Возвести в квадрат число - всегда однозначно можно. А вот в обратную сторону - фиг. Уже два варианта. Вопрос "какое число в квадрате дало 9-ть" - уже не имеет однозначного ответа. То ли +3, то ли -3.
А в случае вопроса "какое число дало тангенс XXX", ответ - безсконечное количество чисел. Ряд чисел вида atan(XXX)+- Pi, где n целые от 0 до бесконечности.
Так как исходная функция tan() - у нас переодичная. Что в свою очередь означает "необратимая".
P.S. кстати Serial.println(sqrt(9)) - вам тоже вернет только одно число "3", но мы знаем что этот ответ не полный ;)
у меня прямоугольный треугольник. пишу что то типа автопилота.
Есть координаты 2 точек с gps и модель будет ехать с 1 точки во 2. Треугольник всегда будет прямоугольный. По координатам можно узнать дополнительно 2 стороны. В итоге имеем 1 угол и 2 стороны
у меня прямоугольный треугольник. пишу что то типа автопилота.
А ну тогда да... все-таки иногда надо задачу давать в более полном виде. Хотя - фиг заранее угадаешь :), дали бы все детально, я же бы и бурчал "зачем столько лишнего мусора" ;)
Ну так покажите ваше решение. Может еще кому пригодится. Многие пишут всяких роботов и многие уже школу подзабыли. Да и просто любопытно ( а может еще и покритиковать получится :)
А вообще спасибо. Заставили вспомнить страшное слово "Сканави", которое когда-то вызывало судороги, а теперь умиление и "эх... хорошо тогда было". Подняли настроение.
P.S. Интерестно, а многим слово "сканави" что-нибудь говорит?
А это поедит http://youtu.be/eCceTjNZ70k
осталось немного доделать точка может находится в 4 положения сверху право-лево и низ право лево. их учесть для градусов и в принципе все готово