Dalam permainan saya ketika saya mengklik dengan mouse di medan di suatu tempat, saya ingin pemain menembakkan panah ke posisi itu secara parabola.
Panah memiliki posisi, akselerasi dan kecepatan semua menggunakan vektor 3D. Saya melihat Lintasan artikel proyektil di wikipedia, tapi saya tidak tahu bagaimana menerapkannya dalam situasi saya karena menjelaskan matematika 2D. Saya bertanya-tanya apakah ada solusi untuk vektor 3D? Adakah sumber daya yang baik yang mungkin terkait dengan situasi 3D?
Jawaban:
Untuk memperluas komentar Kylotan, Anda dapat menggunakan rumus 2D dalam 3D. Dengan asumsi Y sudah habis:
menghitung posisi target dalam ruang X'Y'Z ', di mana sumbu X' sejajar dengan arah penerbangan panah, sumbu Y 'naik, dan Z' tegak lurus terhadap sumbu X 'dan Y'.
Setelah Anda menghitung X dan Y, Anda dapat mengonversi kembali ke ruang-XYZ yang sebenarnya
Contoh
Seorang pemanah berada di (1,0,1). Dia ingin menembakkan panah ke (4,0,5). Kami menganggap X 'sebagai vektor satuan (0,6, 0, 0,8) karena ia menunjuk langsung dari sumber ke titik tujuan. Kami kemudian menganggap Z 'menjadi (-0,8, 0, 0,6) karena itu adalah tegak lurus, tetapi karena panah tidak bergerak dalam sumbu Z', kami akan mengabaikannya. Masalah Anda sekarang adalah bagaimana menembak panah dari (0,0) hingga (0,5) di ruang X'Y '.
.. lakukan perhitungan 2D di sini. Perhatikan bahwa Anda mungkin ingin fungsi parametrik X 'dan Y' dalam hal t , variabel waktu.
Salah satu cara untuk abstrak konversi antara dua koordinat adalah dengan menggunakan matriks transformasi.
ketika kita mengkonversi kembali dari X'Y'Z ' ke XYZ , ini hanyalah transformasi linear terbalik.
sumber