trigonometri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
trigonometri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

23 Temmuz 2021 Cuma

Trigonometrik Fonksiyonlar - PI Sayısı

Hazır Sabitler
Örnek - C ve C++
Şöyle yaparız
#include <math.h>
M_PI şeklinde kullanılır
Örnek - C++ - 20
Şöyle yaparız
std::numbers::pi
Kendimiz Hesaplarsak
Örnek - C++
Şöyle yaparız
static const double PI = std::atan(1) * 4;
Örnek - C#
Şöyle hesaplanabilir.

Kod olarak şöyle yaparız. Bölümdeki böleni hep 2 artırırız. Bölme işlemi bir artı bir de eksi olacak işareti ile toplama eklenir.
double number = 0;
double pi;
int i = 1;

do 
{
  if ((i/2) % 2 == 0)
  {
    number += (double)(1) / i;
  }
  else
  {
    number -= (double)(1) / i;
  }
  pi = 4 * number;
  i += 2;
} while (Math.Round(pi,5) != 3.14159);

Trigonometrik Fonksiyonlar - Sinüs

Giriş
Sinüs temel trigonometrik fonksiyonlardan birisi. sin (sinüs) fonksiyonu ile dikkat edilmesi gereken nokta, sin (PI) çağrısı sonucunda,  PI sayısı floating sayı olarak tam temsil edilemediğinden 0'ı vermeyebilir.

Çıktı Birimi
Sinüs radyan cinsinden çalışır. Dolayısıyla şöyle yapmak gerekir.
public static double sin(double angle){    
  angle = Math.toRadians(angle);
  return Math.sin(angle);
}
Sinüs  Hesaplama

Örnek

sinüsü hesaplamak için Taylor Serisi kullanılabilir.

Örnek
Tablo kullanarak hesaplanabilir.


24 Haziran 2021 Perşembe

tan (tanjant) metodu - Y/X Yaparak Açıyı Hesaplar

Giriş
Karşı/Komşu şeklinde düşünülür.
Yani 
tan(angle) = Y / X
Örnek
Elimizde açı ve karşı değerleri olsun. Komşuyu yani X'i bulmak için şöyle yaparız
Y / Math.tan(angle) 
yaparız

23 Kasım 2018 Cuma

Pusula Açısını Trigonometrik Açıya Çevirmek

Giriş
Pusula'nın başlangıç noktası ile trigonometrik başlangıç noktası farklıdır. Pusulada açılar saat yönünde artar, trigonometride ise saatin tersi yönde artar.

Trigonometriden Çevrim
Trigonometrik dereceyi pusulaya çevirmek için aşağıdaki formül kullanılabilir.
azimuth = (450 - angle) % 360
Pusuladan Çevrim
Pusula derecesini trigonometrik dereceye çevirmek için aşağıdaki formül kullanılabilir.
Örnek
Şöyle yaparız
angle = (90 - azimuth + 360) % 360
Örnek
Şöyle yaparız.
angle = (- azimuth + 90)
Burada soruda kuzeyi 0 kabul eden bir soru var



10 Ağustos 2017 Perşembe

Trigonometrik Fonksiyonlar

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.

sin
sinü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)