Teğet formül budur:
tan(angle) = opposite/adjacent
Bu çizime bakınız:
a
Bitişik taraf nerede , o
zıt taraf ve theta
açıdır. Benzer şekilde, sinüs ve kosinüs sin (ang) = o / h ve cos (ang) = a / h h
uzun yan ise: http://www.mathwords.com/s/sohcahtoa.htm
Bu arada atan
(kısa yay tanjantı olarak da bilinen, ters teğet ) tersidir tan
şöyle:
atan(opposite/adjacent) = angle
Böylece hem zıt hem de bitişik tarafların değerlerini biliyorsanız (örneğin, nesnenin koordinatlarını fare koordinatlarından çıkartarak) açının değerini elde edebilirsiniz atan
.
Oysa oyun geliştirmede, bitişik tarafın 0'a eşit olması sıkça gerçekleşebilir (örneğin, bir vektörün x koordinatı 0'dır). tan(angle) = opposite/adjacent
Feci bir sıfıra bölünme hatası olasılığının açık olması gerektiğini hatırlamak . Bu yüzden, birçok kütüphane atan2
sizin için sıfırı bölmekten kaçınmak ve sağ kadranda bir açı vermek için hem x
ve y
parametreleri belirlemenizi sağlayan bir işlev sunar .
(Gareth izniyle şema, lütfen cevabını da oyla)
Oyun gelişiminde trigonometri kullanımı, özellikle vektörlerde oldukça yaygındır, ancak genellikle kütüphaneler sizin için trigonometri çalışmasını gizler. Üçgenden bir değer bulmak için geometrik manipülasyonlar içeren birçok görev için sin / cos / tan komutunu kullanabilirsiniz. Tek ihtiyacınız olan bir dikdörtgen üçgenin diğer değerlerini bulmak için 3 değerdir (yan uzunluklar / açı değerleri), bu yüzden oldukça kullanışlıdır.
Bir oyunda özel davranışlar için sinüs ve kosinüs fonksiyonlarının “bisiklete binme” özelliğini bile kullanabilirsiniz, örneğin bir nesneyi diğerinin etrafında döndürmek için çok fazla kullandığını gördüm.