Я предполагаю, что это простой вопрос, но я получаю некоторые странные результаты с моим текущим кодом, и у меня нет математического фона, чтобы полностью понять, почему. Моя цель проста, как указано в заголовке: я просто хочу найти точку на некотором расстоянии и под углом от центральной точки.
Мой текущий код:
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 ) );
В целом, это, кажется, работает довольно разумно, но у меня возникают проблемы в разных местах, особенно когда угол соответствует точкам на отрицательной оси x и y. Очевидно, я делаю что-то не так - мысли о том, что это такое?
ОБНОВЛЕНИЕ: Это была моя ошибка, этот код работает нормально - несколько неработающих выбросов на самом деле были из-за ошибки в вычислении угла для 1,5PI. Я думал, что проверил это достаточно хорошо, но, очевидно, не сделал. Спасибо всем за уделенное время, надеюсь, что приведенный выше рабочий код окажется полезным для кого-то еще.