Я прочитал все принятые ответы по этой теме и повторил в точности логику, использованную в них, но мои результаты кажутся искаженными и «случайными».
Я правильно собрал X, Y и градусы изцентральный объект, как показано здесь:
console.log('deg' + degrees + ' - ' + 'x' + parseInt(x) + ', y' + parseInt(y));
Примечание: Сетка X, Y простирается намного дальше от отображаемой области просмотра.Технически сетка не ограничена в размерах.Мы находимся в нашей собственной конкретной координате X, Y в этом пространстве сетки.
Теперь я хочу вычислить координату X, Y, которая находится на расстоянии 1000 пикселей от позиции щелчка.Вот пример того, чего я пытаюсь достичь:
Логика, которую я нашел в другом месте, должна быть такой простой:
x = 1000 * Math.cos(degrees);
y = 1000 * Math.sin(degrees);
console.log('deg' + degrees + ' - ' + 'x' + parseInt(x) + ', y' + parseInt(y));
Результат таков:
Проблема: Ясно на изображении выше, X,Координаты Y далеко от того, что я должен ожидать.Они слишком малы и слишком часто меняются на случайные числа.
Сетка для этого макета показана ниже:
Примечание: Ось X становится положительной влево.Это основная проблема или моя первоначальная логика неверна?
Спасибо, что рассмотрели мой вопрос
Я попробовал предложенный код.Вот мои результаты.
Результат от @ MBo's сейчас старый ответ:
new_x = 1000 * Math.cos(degrees * Math.PI / 180);
new_y = 1000 * Math.sin(degrees * Math.PI / 180);
результаты выглядят намного чище и менее «случайными», однако конец X, Y идут в неправильном направлении и на расстоянии