Dans mon jeu, lorsque je clique avec la souris sur le terrain quelque part, j'aimerais que le joueur tire une flèche vers cette position de manière parabolique.
La flèche a une position, une accélération et une vitesse utilisant toutes des vecteurs 3D. J'ai regardé la trajectoire d'un article de projectile sur wikipedia, mais je ne sais pas comment l'appliquer dans ma situation car cela explique les mathématiques 2D. Je me demandais s'il y avait une solution pour les vecteurs 3D? Avez-vous de bonnes ressources liées à la situation 3D?
Réponses:
Pour développer le commentaire de Kylotan, vous pouvez utiliser les formules 2D en 3D. En supposant que Y est en hausse:
calculer la position de la cible dans l'espace X'Y'Z ', où l'axe X' est parallèle à la direction de vol de la flèche, l'axe Y 'est vers le haut et Z' est perpendiculaire aux axes X 'et Y'.
Une fois que X 'et Y' ont été calculés, vous pouvez reconvertir en espace XYZ réel
Exemple
Un archer est à (1,0,1). Il veut tirer une flèche vers (4,0,5). Nous considérons X 'comme le vecteur unitaire (0,6, 0, 0,8) car il pointe directement du point source au point destination. Nous prenons alors Z 'pour être (-0,8, 0, 0,6) car c'est une perpendiculaire, mais comme la flèche ne se déplace pas dans l'axe Z', nous l'ignorerons. Votre problème est maintenant de savoir comment tirer une flèche de (0,0) à (0,5) dans l'espace X'Y '.
.. faites des calculs 2D ici. Notez que vous voudrez probablement des fonctions paramétriques de X 'et Y' en termes de t , la variable de temps.
Une façon d'abstraire la conversion entre les deux coordonnées est d'utiliser une matrice de transformation.
lorsque nous reconvertissons de X'Y'Z ' en XYZ , il s'agit simplement d'une transformation linéaire inverse.
la source