Aşağıda trigonemetrik fonksiyonlarla ilgili aldığım notlar var.
Trigonometrik ve Kutupsal Sistem
Kutupsal koordinat sisteminin bir diğer ismi de polar sistem. İsimleri farklı gibi görünse de her ikisi de aynı şeyler. Ben bu yazıda
kutupsal koordinat sistemi kelimesi yerine trigonometrik sistem kelimesini kullanmayı uygun buluyorum.
Bu sistemde 0 derece doğudan başlar. 90 derece ise kuzeye denk gelir.
Önemli Formüller
Şöyledir.
sin2α+cos2α=1
sin(α+β)=sin(α)cos(β)+cos(α)sin(β)
cos(α+β)=cos(α)cos(β)−sin(α)sin(β)
PI SayısıPI Sayısı yazısına taşıdım
radyan nedir?
Radyan bir çok hesaplamada karşımıza çıkar. Bence bilinmesi gereken en önemli nokta PI radyan değeri, 180 dereceye denk
gelir.
radyandan dereceye döndürmek için
(radyan * 180 / PI) ;
dereceye radyana dönmek için
(derece * PI / 180) ;
yapılır.
C#'ta şöyle
yapılır
private double DegreeToRadian(double angle)
{
return Math.PI * angle / 180.0;
}
private double RadianToDegree(double angle)
{
return angle * (180.0 / Math.PI);
}
Java'da
Math.toDegrees() metodu da radyanı dereceye çevirir.
Eksi bir radyan değerini açıya döndürmek için aşağıdaki formül
kullanılabilir.
public static double RadianToDegree(double radian)
{
var degree = radian * (180.0 / Math.PI);
if (degree < 0)
degree = 360 + degree;
return degree;
}
İç Açı
Özellikle istikamet hesaplarken işe yarar. İki çizgi arasındaki iç açı aşağıdaki gibi
hesaplanır. İç açı dış açıdan küçüktür. Örneğin ilk açı 10, ikinci açı 300 derece olsun. Aradaki fark 70 derece çıkmalı.
angle = Math.abs(a1-a2);
if (angle > 180)
angle = 360 - angle;
İki doğru arasındaki iç açı
şöyle hesaplanır.
sinsinüs yazısına taşıdım
cos
Kosinüs temel trigonometrik fonksiyonlardan birisi. Co eki complement anlamına gelir. cos aslında sin fonksiyonundan da
çıkarılabilir. sin fonksiyonu cos'un 90 derece önünden gider.
cos(x)=sin(π/2−x)
ya da sinüs cosinüs'ün 90 derece arkasından gelir.
sin(x)=cos(π/2−x)
atan Nedir
Şöyle
yaparız.
x = Math.toDegrees(Math.atan(0.5447))
atan2 Nedir?
atan2 yazısına taşıdım.
asi
sin fonksiyonunu tersini yapar.
acos
cos fonksiyonunun tersini
yapar.
Bir fonksiyonun tersini almak (inverse) y = x şeklinde yazılan bir denklemde x ve y'nin yerini değiştirerek çözmek
demektir.
arccos ile ile vektör arasındaki açıyı bulmak için aşağıdaki formül
kullanılabilir.
Vektör ve açı şekildeki gibidir.
Önce iki vektör formülünden başlanır. a . b nokta çarpımını ifade eder. |a| × |b| ise vektörlerin büyüklüklerini (magnitude) yani uzunluklarını ifade
eder. Sanırım uzunluğa norm veya
euclidian norm da
deniliyor.
a · b = |a| × |b| × cos(C)
Daha sonra acos ile açıyı bulmak için formül şu hale gelir.
C = acos ((a . b) / (|a||b|))
Şekildeki formül şu hale gelir.
C = acos (-6 x 5 + 8 x 12) / 10 * 13
C = acos (66 / 130)
C = 59.48976259
Vektörü X Derece Döndürmek
Formül aşağıdaki gibi
trigonometricAngle = atan2 (Y,X)
newAngle = trigonometricAngle + rotationAngle
length = sqrt ( (X^2) + (Y^2) )
X = length * cos (newAngle)
Y = length * sin (newAngle)
Pusulaya Açısına Göre X,Y koordinatlarını hesaplamak
Pusula Açısını Trigonometrik Açıya Çevirmek yazısına taşıdım.
Pisagor Teoremi
Pisagor teoremi dik üçgende kullanılır. 2 boyutlu uzayda iki nokta arasındaki mesafeyi hesaplamak için kullanılabilir.
x² + y² = r²
Örnek:
Y değerini bulmak içinse aşağıdaki gibi yaparız.
y = sqrt(r² - x²)
Öklid Uzaklığı
Pisagor teoremi iki boyutlu uzayda kullanılır. Çok boyutlu uzayda ise
Öklid Uzaklığı kullanılır. 3 boyutlu uzayda mesafe şöyle
bulunur. Önce iki nokta arasındaki mesafe hesaplanır.
v.x = p1.x - p0.x
v.y = p1.y - p0.y
v.z = p1.z - p0.z
Daha sonra nokta çarpımı (x,y,z'nin karelerinin toplamı) yapılır.
(v.x * v.x) + (v.y * v.y) + (v.z * v.z)
Mesafe nokta çarpımının kare köküdür.
distance = sqrt(dot(v, v))
Kosinüs Teoremi
Pisagor sadece dik üçgende kullanılır. Tüm üçgenlerde kullanılan formül ise
kosinüs teoremi. c'nin uzunluğunu bulmak için a ve b'nin uzunluklarını ve de a ila ve arasındaki açıyı bilmek gerekir.
cKare = aKare + bKare - 2abcos (a ve b arasındaki açı)
Kosinüs Teoremi aynı zamanda
Spherical Law Of Cosines teoreminin de çıkış noktasıdır.
Şekiller
Basit Shape Sınıfları yazısına taşıdım.
Sinüs Dalgası
Salınım
0-60 arasında
salınım (oscilation) yapan basit bir fonksyion örneği
burada. Sürekli tekrar eden bir sinyali salınım yapar hale getirmek için ilk yarıda [0-30] input * 2 ve daha sonra ikinci yarıda [30 - 60 ] 120 - input * 2 şeklinde kullanabiliriz. Böylece çıktımız hep 0 - 60 ve 60 - 0 arasında değişir.
Sinüs Dalgası
Sinüs dalgası f(x) = A sin(wX + p) formülü ile
yazılır. A genliği, w ise frekansı gösterir. w değeri ile oynayarak dalganın, dalga boyu değişir.
Örnek
Yüzde Hesaplama
Yüzde hesaplama için aşağıdaki basit formül
kullanılır.
(currentX - minX) / (maxX - minX)
Hiperbolik Fonksiyonlar
Hiberbolik Fonksiyonlar ile atanh gibi fonksiyonlar geliyor. Şöyledir.
sinhxcoshxtanhx=−isin(ix)=cos(ix)=−itan(ix)