6
votes

Comment refléter un angle sur l'axe Y

Je ne suis pas de mathématicien, mais je suis en quelque sorte dans le développement de jeux comme passe-temps.

N'ayant jamais rien étudié au-delà des mathématiques de base, j'ai beaucoup de difficulté à comprendre comment inverser l'angle de quelque chose, face à la direction opposée, le long de l'axe X et sur l'axe Y.

Une image dit plus de 1000 mots (des mots spécialement infensés): http://img156.imageshack.us/i/wihwin.png/

Je veux fondamentalement inverser la direction des objets de canon adhérés à un robot. Lorsque le robot change de droite à droite pour faire face à gauche, je fais (180 - angle) comme tout le monde m'a suggéré, mais elle inverse littéralement l'angle, ce qui rend les canons à visionner lorsqu'ils viennent tomber. Donc, je dois faire autre chose, mais cela échappe à mes connaissances.

Pour le mettre en d'autres termes, je travaille en 2D, donc je veux un angle faisant face à la droite à gauche. Mes angles sont définis:

  • 0 étant "totalement à droite"
  • 180 "GAUCHE"
  • 90 "up" et
  • 270 "DOWN"

    Je veux quelque chose qui vise avec un angle de 91 de se transformer en 89 lorsqu'il est inversé. Il n'y a pas d'axe z présent. Toute personne serait si gentille de m'aider avec ça?


3 commentaires

Vous inversez-vous l'angle dans l'axe de droite? On dirait que vous faites z = 180-z au lieu de x = 180-x. Sinon, veuillez essayer d'expliquer davantage quel est le problème.


Ainsi, l'angle du canon est-il lié au système de coordonnée du robot ou de l'indépendance? Assurez-vous également de vérifier si vos angles sont mesurés en degrés ou en radians


Vous avez vraiment besoin d'obtenir votre système de coordonnées épinglé avant de la résoudre.


5 Réponses :


1
votes

Cela dépend de la façon dont vous définissez votre angle. Si vous le définissez relatif à l'axe X, l'angle est en effet (180 - alpha).


2 commentaires

Oui, mais contrairement à l'image que j'ai ajoutée, je reçois la ligne rouge dans le quadrant inférieur à la place ...


@Misshalberd: C'est probablement parce que vous ne définissez pas votre angle par rapport à l'axe X comme indiqué dans votre diagramme. Je m'attends à ce que vous puissiez définir cela par rapport à l'axe Y?



1
votes

En regardant votre diagramme, les angles que vous avez marqués sont les mêmes - vous avez simplement changé le point de départ. Si vous vouliez réellement mesurer l'angle de sorte que 0 deg est tout droit, il est 360 - X

Ainsi, si vous avez visé à 45 degrés, lorsque vous inverserez, il est 360-45 = 315 degrés


1 commentaires

Oh mon, j'avais l'intention du centre d'être commun, j'aurais dû dessiner des flèches sur eux, mais ça ressemblerait à "vitesse" à la place ...



0
votes

Où est-ce que votre point d'angle zéro de degré et où se trouve à 90 degrés?

Si zéro est tout droit, vous pouvez simplement faire -1 * angle .


0 commentaires

8
votes

En réponse à votre édition Ce que vous voulez, c'est

M_PI - x


0 commentaires

3
votes

Ceci est assez difficile à répondre sans connaître un peu plus sur la manière dont les canons sont définis dans votre jeu, mais je vais essayer de donner des pointeurs.

On dirait que votre canon est visualisé depuis le côté et vous voulez qu'il se retourne de droite à gauche mais en gardant le canon tourné vers le haut. Le calcul dépend de quelle direction 0 est et si les angles sont exécutés dans le sens des aiguilles d'une montre ou dans le sens contraire des aiguilles d'une montre.

Si l'angle de 0 a le canon pointé vers le haut, l'angle est mesuré de tout droit, dans le sens des aiguilles d'une montre. Par conséquent, l'angle d'inverse sera endommagé. Si des angles négatifs ne fonctionnent pas, utilisez (360-angle).

Si l'angle de 0 a le canon pointant vers la droite et un angle de 45 points en bas à droite, les angles de canon orientés vers le haut sont de 180 à 360 avec 270 étant droitiers. Par conséquent, pour inverser un angle, vous utiliseriez (540-angle).

Si l'angle de 0 a le canon pointant vers la droite mais un angle de 45 points vers le haut à droite, les angles de canon sont de 0 à 180. Pour inverser l'angle, utilisez (180-angle).

J'espère que cela aide! Lee.


1 commentaires

"-ange" travaillé! Au moins dans l'aspect rendu. Je dois vérifier si le moteur considère l'objet en tant que visant dans la bonne direction. Il est étrange cependant, je jure que la poussée d'un objet avec angle 0 rend ça aller à la droite au lieu de monter. Je vais expérimenter plus loin, merci!