Diberikan seperangkat kartu remi (gambar persegi panjang dengan lebar dan tinggi) bagaimana saya bisa memutar dan memposisikan masing-masing sehingga muncul dalam pola 'kipas', sama seperti Anda akan memegang tangan kartu dalam kehidupan nyata. Matematika apa yang diperlukan untuk melakukan ini?
MEMPERBARUI
Berikut ini adalah final, implementasi browser dalam JavaScript: https://cosmicrealms.com/blog/2013/03/16/hand-of-cards/ dan http://jsfiddle.net/tyyvk/108/
mathematics
Sembiance
sumber
sumber
Jawaban:
Teori
Karena Anda tidak menentukan dalam platform apa Anda menerapkan ini, saya akan memberikan deskripsi algoritma dengan cara agnostik bahasa:
Bahwa rotasi terpusat di sekitar salah satu sudut bawah kartu (atau di dekat sudut) harus jelas dari melihatnya:
Pelaksanaan
Adapun cara mengimplementasikannya, itu tergantung pada platform Anda. Pada XNA Anda cukup menggunakan parameter Origin
SpriteBatch.Draw
untuk mengubah pusat rotasi Anda.Inilah yang saya dapatkan dengan kode berikut (dengan beberapa penyesuaian ke asal agar terlihat lebih baik - pada dasarnya asal dimulai di dekat sudut kanan dan berakhir di dekat sudut kiri):
Dan hasilnya:
sumber