Предположим, что у меня есть значения X = 0, Y = 0, и я хочу вычислить новую точку (X1, Y1) из вектора и величины. Скажем, вектор на 90 градусов (а не в радианах), а величина 10, так что код будет выглядеть примерно так:Я понимаю, что Sin и Cos находятся в радианах, но почему я все еще на 90 градусов?
x1 = X + (10 * Math.Cos(90 * (Math.PI/180.0)));
y1 = Y + (10 * Math.Sin(90 * (Math.PI/180.0)));
И тогда я рисую линию, чтобы подтвердить результаты
DrawLine(X,Y,x1,y1);
Но моя линия отключена на 90 градусов! Если я вычту 90 из угла, который я перехожу в Cos и Sin, все получается отлично. Итак, я думаю, я могу жить с этим.
Вот снимок экрана:
Я передаю его 90 и я ожидаю линию идти на запад - восток. Я предполагаю, что 0 градусов приходится на север. Я знаю, что система координат, которую я использую, является горизонтальной, а Y - вертикальной.
Мне просто интересно, что мне не хватает.
Ваш код выглядит хорошо для меня. В каком направлении ваш вектор указывает (используйте север/юг/восток/запад, чтобы мы могли это себе представить) и в каком направлении вы ожидали, что он укажет? –
Возможно, вы сможете увидеть скриншот того, как он выглядит и что вы ожидаете от него. –
Как вы измеряете углы? Триггерные функции ожидают, что theta = 0 соответствует оси + X (восток), причем theta увеличивается в направлении против часовой стрелки. Для заголовков компаса тета = 0 соответствует северу и увеличивается по часовой стрелке. –