2016-08-05 1 views
1

J'ai actuellement un code qui prend un emplacement X et Y sur un système de coordonnées cartésiennes et déplace un point autour. Cependant, j'aimerais pouvoir accomplir la même action avec seulement un emplacement X pris dans et un angle (Y). Par exemple, si le code prend (2,2), il déplace le point de (0,0,0) vers (2,2,0) avec succès. Je préférerais prendre (2, 45 °) et faire passer le point à l'endroit approprié.Définition d'un point avec un emplacement X et un angle dans Unity C#

Maintenant, j'ai une idée que pour accomplir cela, je dois d'abord déplacer le point le long de l'axe des X. Ensuite, faites-le tourner autour de (0,0,0) de 45 degrés, mais le processus d'accomplissement de cette deuxième partie s'est avéré difficile à faire et à rechercher car je ne connais pas la terminologie mathématique appropriée.

Toute aide serait la bienvenue!

Merci d'avance!

Répondre

1

Vous avez simplement affaire au triangle rectangle et votre tâche est de trouver un côté opposé avec un angle donné et un autre côté. Utilisez cos et sin de l'angle et de la coordonnée x pour trouver le côté inconnu après. sin (angle) = y/vecteur, cos (angle) = x/vecteur. Ensuite, vous pouvez définir votre point avec x, y.

+0

Génial! merci beaucoup pour la bonne explication. Juste pour m'assurer que je suis à 100%, quand vous écrivez "... y/vectoriel", faites-vous référence à la valeur y des points transform.position (Vector3)? Ou est-ce que vous divisez expressément y par une valeur? – VanDroid

+0

variable vectorielle introduite ici pour trouver y coordonnée avec x connu (2 dans votre exemple) et angle (45 ° dans votre exemple) .une fois que vous avez trouvé un vecteur en utilisant la formule cos, vous substituez vecteur dans sin et obtenez y. Notez que lorsque vous trouvez y son y du point précédent + y (en ce qui concerne votre exemple, c'est 0 + 2) – Roman

+0

Oh! Je pense que je vois, donc puisque j'ai le x comme valeur connue. mon point Y j'utiliserais la formule y = 45 °/cos (2)? – VanDroid