2017-08-25 3 views
-1

J'essaie d'implémenter des pentes dans un jeu 2D en utilisant cette formule y1 = y + (x1 - x) * (v/u) pour les pentes avec des degrés aléatoires. J'ai besoin d'une formule pour l'autre direction (de droite à gauche vers le bas). Cette formule y1 = y + (v - (x1 - x)) ne fonctionne pas. Est-ce que quelqu'un sait la bonne formule?XNA Slope Math formule

Voici une image qui pourrait aider:

enter image description here

+0

La première formule n'autorise que les pentes à 45 degrés Utilisez 'y1 = y + tan (angle) * (x1 - x) ' – meowgoesthedog

+0

y1 = pente * (x1 - x) + y; où pente = v/u –

+0

Désolé, j'ai oublié d'ajouter * (v/u), c'était juste une erreur en tapant.Le problème n'est pas de gauche à droite, ça marche bien, je cherche un fomular pour l'autre sens – Xhen

Répondre

1

On ne sait pas ce qui est connu et inconnu dans votre question. Ta photo n'aide pas. Je vais essayer de deviner.

La réponse est un peu plus que l'algèbre de lycée et la trigonométrie. Je suppose que vous avez un point de départ (x1, y1), un angle thêta de votre choix qui est égal à zéro dans la direction x positive et augmente dans le sens antihoraire, et une distance r que vous ' J'aime voyager.

Vous pouvez calculer le point final (x2, y2) comme ceci:

x2 = x1 + r*cos(theta) 
y2 = y1 + r*sin(theta) 

Cela fonctionne pour tous les angles. Par exemple, votre "et à droite" pour un angle de 45 degrés (pi/4 radians) est:

x2 = x1 + r*sqrt(2)/2 
y2 = y1 + r*sqrt(2)/2 

Votre « vers le bas et à droite pour un angle de 225 degrés est:

x2 = x1 - r*sqrt(2)/2 
y2 = y1 - r*sqrt(2)/2