Not:

Bu blog için açmış olduğum Twitter feed hesabımı takip ederek, yeni yazılarımdan daha rahat haberdar olabilirsin!

Dikey Nokta Çarpımı (Perp Dot Product, 2D Cross Product)

Dikey nokta çarpımı perp dot product yada 2d cross product olarak da geçer; aslında bildiğimiz nokta çarpımıdır, tek fark 2. vektörümüzün normaliyle, yani kendi açısına dik vektörüyle çarpım yapmış oluruz. Fakat bu işlemle bağlantılı tutulan diğer şey 3 boyutlu uzayda kullanılabilen cross product yöntemidir. Yani fake cross product olarak da adlandırılabiliyor. Bununla kafanızı hiç karıştırmadan ne olduğunu anlamaya çalışalım.

Sonuç bir vektör değil skalerdir.

V1xV2=V1.x* V2.y-V1.y*V2.x

( Vektör normalleri ile ilgili detaylı bilgi için bu yazıma , Nokta çarpımıyla ilgili detaylı bilgi için bu yazıma bakabilirsiniz. )

Aslında dikkat ederseniz V1(x,y) ile V2(y,-x)'e nokta çarpım yapmaktan başka birşey değil bu. Yani 2. vektörümüzün normalini alıp, 1. vektörümüzle nokta çarpımı yapsak birşey değişmez. Fakat bunu bir pratik yol, kısayol olarak düşünebilirsiniz.

Dikey nokta çarpımı şu bağıntıyı da beraberinde getirir;

V1xV2 = |V1|*|V2|*sin(alfa)

Ne işimize yarıyor?

Niye bir vektör ve diğer vektörün normalini çarparız? Bildiğiniz gibi normal vektör, vektörümüzün kendi açısına dik aynı büyüklükte başka bir vektörden ibarettir.

Nokta çarpımla istediğimiz bir vektöre dikme indiriyor, çarpan nokta ile çarptığımız vektörün başlangıç noktasının arasındaki mesafeyi de bulmuş oluyorduk. Dikey nokta çarpım ile hedef 2. vektör yerine onun normal vektörüne adeta dik bir ışın göndermiş oluyoruz.

enter image description here

Şekilde gördüğünüz gibi 2. vektörümüzün normaline dik bir ışın gönderiyoruz, 0 noktası ile bu ışının çarptığı yer arasındaki mesafeyi öğrenmek için bağıntımızda V1*sin(alfa)'yı yalnız bırakıyoruz.

V1xV2/|V2| = V1* sin(alfa)

2 Vektör Arasındaki Açı

Bağıntımızı tekrar yazalım;

V1xV2=|V1|*|V2|*sin(alfa)

Nokta çarpımdakine benzer bir şekilde sin(alfa)'yı yalnız bırakıp yazılım kütüphanenizdeki arcsin( ) fonksiyonuna sokarsanız radyan cinsinden biraçıyı bulmuş olursunuz. Bununla ilgili örnek nokta çarpımında mevcut, bu yüzden benzer kodlar geçerli olduğu için tekrar kodlara dökmeye ihtiyaç duymuyorum.

Vektörler Kapanış

Vektörler konusunda bilmeniz gereken temel işlemleri ele aldık. Hakkında oldukça zor yerli kaynak bulabildiğiniz yada bulabildiğinizde de adapte olmakta güçlük çekebileceğiniz konularda açıklayıcı olmaya çalıştım. Bundan sonra algoritmalar ile yolumuza devam edeceğiz. Takipte kalın.

Yorumlar