Calculando punto en la circunferencia de un círculo desde el ángulo en C #?

Me imagino que esta es una pregunta simple, pero estoy obteniendo algunos resultados extraños con mi código actual y no tengo los antecedentes matemáticos para entender completamente 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.

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 de manera bastante razonable, pero tengo problemas en varios puntos, especialmente cuando el ángulo corresponde a puntos en los ejes negativos x e y. 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 debieron a un error en la forma en que se calculaba el ángulo para 1.5PI. Pensé que lo había comprobado 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.

Respuestas a la pregunta(6)

Su respuesta a la pregunta