J'imagine que c'est une question simple, mais je reçois des résultats étranges avec mon code actuel et je n'ai pas les connaissances en mathématiques pour bien comprendre pourquoi. Mon objectif est simple, comme indiqué dans le titre: Je veux juste trouver le point à une certaine distance et l'angle d'un point central.Calcul du point sur la circonférence d'un cercle à partir de l'angle en C#?
Mon code actuel:
Point centerPoint = new Point (0, 0);
Point result = new Point (0, 0);
double angle = 0.5; //between 0 and 2 * PI, angle is in radians
int distance = 1000;
result.Y = centerPoint.Y + (int)Math.Round(distance * Math.Sin(angle));
result.X = centerPoint.X + (int)Math.Round(distance * Math.Cos(angle));
En général, cela semble fonctionner assez raisonnable, mais je reçois des problèmes à différents endroits, notamment lorsque l'angle correspond à des points dans les x négatifs et l'axe y. Clairement je fais quelque chose de mal - des pensées sur ce que c'est? MISE À JOUR: Ce fut mon erreur, ce code fonctionne bien - les quelques valeurs aberrantes qui ne fonctionnaient pas étaient en fait dues à un bug dans la façon dont l'angle de 1,5PI était calculé. Je pensais que j'avais bien vérifié, mais évidemment pas. Merci à tous pour leur temps, j'espère que le code de travail ci-dessus sera utile à quelqu'un d'autre.
Qu'est-ce que tu veux dire "je reçois des problèmes à différents endroits"? –
centerPoint est délibérément utilisé? Est-ce que centerPoint.X et .Y ne doivent pas être ajoutés au résultat? – spender
pouvez-vous fournir un exemple d'un problème? –