2009-07-20 6 views
0

私はローテーションにUIAccelerationを使用しています。私は反対側、隣の側を持っているが、私はtan-1(y/x)inverse tanを計算したい。逆tanの計算方法は?

+0

atan()とatan2()の相違 –

+0

私はあなたが持っているものを手に入れません。あなたは写真かより良い説明を提供できますか? –

答えて

4

標準Cのmath.h関数が用意されています

#include <math.h> 

... 
float theta = atan2f(y, x); 
... 
+1

ほとんどのatan2関数では、Yが最初のパラメータであり、X – Sean

+0

ではなく、正しいことに注意してください。 –

3

atan2(y, x)atan(y/x)と同じものですが、それはx = 0(すなわち上下に行くの縦線)がない場合に適切に対処することができます正と負の無限大を扱うこと。

+2

ほとんどのatan2関数では、YがX – Sean

+0

ではなく最初のパラメータであることに注意してください。 –

+0

False:atan2は指向角度(0〜2 Piまたは-PiとPi)を返しますが、atan(y/x)は-Pi/2〜Pi/2の数字を返します。 –

9

atan(y/x)ではなくatan2(y、x)を使用するのは、2つの理由からです。 1つはDavid Maymudes(x = 0の問題)によって言及されています。もう1つはatan2()が-から+ πまでの全範囲を扱うのに対し、atan()は-/2と+ π/2の間の出力しか得られず、(x、y)=( 2,2)と(x、y)=( - 2、-2)になります。

+1

はい。基本的にatan2はあなたを正しい四分円にします。 – Nosredna

+1

ほとんどのatan2関数では、Yが最初のパラメータであり、X – Sean

+0

Yayは編集されていません。今あなたはupvoted得る。 :) – Sean