Manfaat yang dinyatakan:
Beberapa kontra yang muncul dalam pikiran:
Saya orang matematika, dan saya lebih suka menggunakan salah satu derajat baik 0..1 atau 0.512 karena alasan format kegigihan dan shader. Jika Anda menanyakan pertanyaan yang sama dua tahun lalu atau lebih, saya dapat mengatakan bahwa radian lebih baik karena "murni" dalam arti matematika.
Namun, menyimpan 2 x Math.PI dalam file adalah masalah (kegigihan), dan "360" hanya lebih cepat untuk ditulis daripada 2*PI, itu tidak dapat direpresentasikan dengan jelas dalam bentuk biner.
Mesin berbasis flash bekerja sebagian besar dengan derajat:
http://cocos2d-x.org/docs/programmers-guide/sprite/index.html
https://www.youtube.com/watch?v=zAsDbHXlFWI
Juga editor seperti Spine bekerja dan menyimpan sudut dalam radian.
Satu hal lagi yang aneh adalah bahwa kami menggunakan SKEW yang merupakan hal desainer grafis dan hanya "(shear.y , -shear.x)" dalam arti matematika, kami mengizinkan kekejian dan memaksa pengguna untuk menggunakan rad pada saat yang bersamaan.
Konfliknya antara "perender tingkat rendah" dan "perender grafis 2d dengan panggung dan dukungan alatnya sendiri", dan saya pikir pixi lebih dekat ke yang kedua.
@englercj Saya harus mengerjakan kode itu juga, saya sudah memiliki sesuatu seperti itu di garpu saya: https://github.com/gameofbombs/gobi/tree/master/src/core/transform
https://github.com/gameofbombs/gobi/blob/master/src/core/math/FlatTransform2d.ts
@mreinstein Saya harus meminta untuk melihat kode itu juga karena Anda tahu sesuatu tentang transformasi pixi ;)
Saran dari @bigtimebuddy & @GoodBoyDigital , buat API dapat dikonfigurasi:
// useDegrees
CONVERSION = Math.PI / 180;
// useRadiens
CONVERSION = 1;
set rotation(rot)
{
this._rotation = rot * CONVERSION;
}
Mungkin seperti Phaser melakukannya? Sudut untuk derajat, rotasi untuk radian.
@englercj Setuju. Itu cara paling sederhana di sana. Mesin berdasarkan pixi hanya dapat memperbaiki konstanta "KONVERSI" mereka.
@englercj Processing melakukan ini, dan saya pikir ini adalah keputusan desain yang sangat buruk. Itu menyakitkan modularitas. Jika Anda memiliki satu bagian kode yang melakukan sesuatu dengan satu cara dan mencoba menggunakan bagian lain dari kode (mungkin di perpustakaan) yang mengasumsikan cara lain, itu tidak akan berfungsi. Jika Anda memastikan untuk mengatur mode unit sebelum setiap panggilan ke fungsi terkait sudut, maka itu mungkin memastikan kode Anda berfungsi tetapi merusak kode perpustakaan. Dan jika ada bagian dari kode perpustakaan yang menggunakan sudut, haruskah itu mengatur mode sudut? Yang mungkin menjamin karya kode sebagaimana dimaksud namun memecahkan kode pengguna. Ini hampir seperti Dilema Tahanan desain API.
@OSUblake Tampaknya lebih masuk akal. Sementara nama sudut dan rotasi tidak secara eksplisit menunjukkan atau melarang unit, pasti ada asosiasi di sana yang membuat ini lebih masuk akal daripada seperti tebakan 50/50.
Saya pikir angleDeg
dan angleRad
akan lebih baik. Mengapa tidak membuatnya eksplisit?
Sudut untuk derajat, rotasi untuk radian.
Itu mungkin bagaimana phaser melakukannya tetapi itu tidak disepakati secara universal. rotasi adalah aksi, dan sudut adalah jumlah aksi yang terjadi. Kadang-kadang disebut sebagai "sudut rotasi". Jadi secara teknis sudut atau rotasi dapat kelebihan beban untuk merujuk pada hal yang sama, dan dapat dinyatakan dalam satuan (derajat atau radian.)
Setiap operasi matematika yang melibatkan rotasi jauh lebih mudah dengan radian. Ini benar-benar tidak sulit untuk dipahami; Math.PI berada di tengah lingkaran; Math.PI * 2 adalah rotasi penuh.
Satu-satunya derajat waktu yang tepat adalah saat Anda memaparkan antarmuka pengguna visual kepada orang-orang yang melibatkan rotasi, dan audiens Anda adalah kelompok yang tidak memahami geometri dasar (yaitu, kebanyakan orang.)
Saya mengakui ini adalah pendapat tetapi hanya menggunakan radian. Semua API Matematika dalam javascript beroperasi pada radian, bukan derajat, seperti kebanyakan perpustakaan geometri non-mainan.
Jika kita benar-benar harus mendukung semua orang untuk semuanya maka saya setuju dengan @1j01 untuk membuatnya eksplisit. Mungkin .degrees
atau .radians
?
Masalah ini secara otomatis ditandai sebagai basi karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Terima kasih atas kontribusi Anda.
Utas ini telah dikunci secara otomatis karena tidak ada aktivitas terbaru setelah ditutup. Silakan buka edisi baru untuk bug terkait.
Komentar yang paling membantu
Mungkin seperti Phaser melakukannya? Sudut untuk derajat, rotasi untuk radian.