Imagino que esta es una pregunta simple, pero obtengo algunos resultados extraños con mi código actual y no tengo los conocimientos matemáticos para comprender por qué. Mi objetivo es simple, como se indica en el título: solo quiero encontrar el punto a cierta distancia y ángulo desde un punto central.¿Cálculo del punto en la circunferencia de un círculo desde el ángulo en C#?
Mi código actual:
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 general, esto parece funcionar bastante razonable, pero tengo problemas en varios puntos, sobre todo cuando el ángulo corresponde a puntos en los negativos x e y eje. Claramente estoy haciendo algo mal, ¿pensamientos sobre qué es eso?
ACTUALIZACIÓN: Este fue mi error, este código funciona bien - los pocos valores atípicos que no funcionaban en realidad se debían a un error en cómo se calculaba el ángulo para 1.5PI. Pensé que lo había verificado lo suficientemente bien, pero evidentemente no lo había hecho. Gracias a todos por su tiempo, es de esperar que el código de trabajo anterior sea útil para otra persona.
¿Qué quiere decir "tengo problemas en varios puntos"? –
es centerPoint deliberadamente no utilizado? ¿No deberían agregarse centerPoint.X y .Y al resultado? – spender
¿Puedes darnos un ejemplo de un problema? –