Saya telah mencari definisi radian dan menemukan bahwa matematikawan lebih suka mereka karena mereka berasal dari pi daripada sepenuhnya berubah-ubah seperti derajat.
Namun, saya belum menemukan alasan kuat untuk menggunakannya dalam pengembangan game, mungkin karena kurangnya pemahaman matematis terkait saya. Saya tahu bahwa sebagian besar fungsi sin / cos / tan dalam bahasa apa radian, tetapi seseorang juga bisa membuat fungsi perpustakaan dalam derajat (dan menghindari kesalahan pembulatan yang melekat saat menggunakan pi).
Saya tidak ingin ini menjadi jajak pendapat, saya hanya ingin mendengar dari orang-orang yang telah melakukan pengembangan game (dan penelitian matematika yang terkait) di mana radian menawarkan pengalaman yang unggul lebih dari derajat, sebagai lawan dari "Kami menggunakan radian karena kami selalu menggunakannya ", hanya untuk membantu saya (dan mungkin orang lain) untuk memahami apa manfaatnya.
sumber
Jawaban:
Radian digunakan dalam matematika karena
Bukannya ahli matematika seperti pi. Radian sebenarnya merupakan pilihan ukuran sudut yang lebih alami daripada derajat, karena alasan di atas. Mereka adalah ukuran sudut di mana faktor-faktor seperti pi / 180 menghilang.
Jadi IMO, pertanyaannya bukan "mengapa menggunakan radian", tetapi "mengapa tidak menggunakan radian". Dengan kata lain, orang tidak perlu alasan untuk menggunakan radian; mereka adalah pilihan standar ukuran sudut. Seseorang perlu alasan untuk menggunakan derajat. Misalnya seseorang dapat memilih untuk menunjukkan sudut dalam derajat di antarmuka pengguna aplikasi, karena mereka lebih akrab bagi banyak orang (terutama artis). Namun, secara pribadi saya sudah terbiasa berpikir tentang sudut dalam hal radian daripada derajat.
Saya tidak punya contoh gamedev spesifik untuk memberi Anda karena ini bukan masalah gamedev, tetapi yang matematika, dan akan sama di bidang apa pun yang menggunakan matematika.
(Omong-omong, tidak ada lagi "kesalahan pembulatan inheren saat menggunakan pi" daripada ketika menggunakan derajat ... sudut harus selalu berupa bilangan real, bukan bilangan bulat, kalau tidak, bagaimana Anda akan mewakili sudut setengah derajat? :) )
sumber
Jawaban Nathan sangat konkret. Saya ingin memberikan pandangan yang lebih umum:
Konsep matematika yang paling kompleks yang diterapkan secara asli di sebagian besar unit pemrosesan adalah angka floating point sebagai model untuk bidang bilangan real ℝ. Geometri visual didasarkan pada ruang vektor nyata tiga dimensi ℝ³. Koordinat adalah bilangan real. Kuantitas geometrik didasarkan pada panjang , yang merupakan kelipatan nyata dari suatu unit.
Karena basis ini dalam bilangan real dan panjang, praktis untuk juga memodelkan sudut dengan bilangan real resp. panjangnya. Radian adalah panjang dari busur lingkaran satuan dengan sudut yang diberikan. Jadi ini adalah model sudut yang paling kompatibel dengan semua unit lainnya berdasarkan pada bilangan real resp. panjangnya. Misalnya, aproksimasi sin x ~ x untuk nilai x yang kecil adalah aproksimasi koordinat y dari suatu titik pada lingkaran satuan oleh busur dari sumbu x ke titik itu.
Kita tidak boleh lupa, bahwa sudut adalah tidak panjang a. Ini adalah salah satu dari 4 bagian pesawat yang dibuat oleh dua garis lurus berpotongan. Kuantitasnya dibatasi oleh simetri bidang-bidang dalam ℝ³ dan metrik euclidean.
Adalah lebih alami untuk memodelkan sudut dengan interval semiopen [0,1) (atau (0,1)) direkatkan pada titik akhirnya, diberi nilai sudut sebagai bagian dari putaran penuh. Derajat hanya 1 / 360 putaran penuh. (BTW: Angka secara teoritis, ini adalah pilihan yang lebih baik daripada sistem desimal yang digunakan untuk bilangan real.)
sumber
Sementara saya menggunakan radian juga, untuk semua alasan yang ditentukan, setidaknya ada satu alasan bagus mengapa derajat lebih disukai: Presisi dan akumulasi kesalahan. Berputar melalui lingkaran penuh 1 derajat pada suatu waktu adalah tepat. Berputar melalui lingkaran penuh 2PI / 360 radian pada suatu waktu tidak. Melakukan rotasi 90 derajat 4 kali pada kisi-kisi piksel membuat Anda kembali ke titik awal Anda. Melakukan rotasi radian 2PI / 4 pada pixel grid 4 kali tidak.
sumber
Mari kita sepakat, bahwa lebih baik untuk memilih dan tetap menggunakannya daripada menggunakan dua definisi dan sedikit menebak yang mana dari mereka yang diperlukan untuk fungsi saat ini. Maka menggunakan panjang busur lebih alami untuk penerapan dosa dan cos yang mungkin menjadi alasan cmath untuk mengimplementasikannya seperti itu. Karena game sering ditulis dalam C ++ atau C dan sudah ada dosa dan cos diimplementasikan, masuk akal untuk tetap berpegang pada definisi itu.
[Persetan dengan Anda sebelumnya]
sumber