Compte tenu de l'angle et de la longueur, comment dois-je calculer les coordonnées
En supposant que l'angle supérieur gauche est (0,0) et je me suis donné un angle de 30 degrés, un point de départ (0,300), une longueur de ligne 600, comment dois-je calculer le point de fin de la ligne de sorte
que la ligne est représentative de l'angle donné.
Le C pseudo-code est
main() {
int x,y;
getEndPoint(30, 600, 0, 300, &x, &y);
printf("end x=%d, end y=%d", x, y);
}
//input angle can be from 0 - 90 degrees
void getEndPoint(int angle, int len, int start_x, int start_y, int *end_x, int *end_y)
{
calculate the endpoint here for angle and length
*end_x = calculated_end_x;
*end_y = calculated_end_y;
}
- je suppose que vous voulez au type d' (int *) pour end_x et end_y, ainsi que le retournement de vos missions à travers à la fin de votre fonction.
- C'est les maths ou le code que vous rencontrez des problèmes avec? Si c'est les maths, alors ce n'est probablement pas le forum, et c'est assez élémentaire; je vous renvoie vers Polaire Rectangulaire de Conversion. Rappelez-vous cependant que lors de la mise en œuvre de la C de la bibliothèque math utilise radians plutôt que de degrés
r = d * PI / 180.0
- Bon, je l'ai downvoted pour répondre à la programmation de la moitié. Oh comment volage...
- Merci, je voulais que les valeurs calculées. Modifié pour refléter cela.
- Il signifie que votre fonction de signature est mauvais. Je vais le corriger.
- Le codage est simple, j'ai peu de fond en mathématiques toutefois, désolé si c'est le mauvais endroit pour le demander.
- Combien de temps avant Spolsky et Atwood configurer mathoverflow.com?
- Ils venaient tout juste d'adopter mathoverflow.net
Vous devez vous connecter pour publier un commentaire.
cos()
etsin()
prendre radians, être prudent.Vous n'avez pas de dire ce que l'angle est mesuré par rapport à, ou, en fait, ce que l'orientation des axes aller. Ces fera la différence.
Vous devez d'abord convertir des degrés en radians (multiplier par PI et diviser par 180).
Ensuite, vous devez prendre le sinus et le cosinus de l'angle et de la multiplier par la longueur de la ligne. Vous avez maintenant deux numéros de vos coordonnées, mais cela dépend de ce que les directions de vos axes aller et à partir d'où vous êtes à la mesure de vos angles, lequel de ces valeurs est la coordonnée x, et qui est le y, et si l'un d'entre eux doit être niée.
math.h
a toutes les fonctions trigonométriques vous avez besoin. Vous pouvez avoir besoin de donner-lm
à votre éditeur de liens, en fonction de ce système, vous êtes en train de construire sur la (parfois, c'est automatique).Les gens oublient la
complex
bibliothèque en C++, qui ne polaires à rectangulaires conversions pour nous.Je voudrais aussi être prudent avec votre choix de la terminologie. Quand je vois
get
dans un nom, je pense que la récupération d'une réponse stockée quelque part. Dans cet exemple, nous allons calculer quelque chose, et qui pourrait être fausse assurance donnée à un utilisateur de votre code.