Эй, я сделал функцию вращения в Javascript для вращения некоторого 2D-вектора (точки).Функция вращения JS, выводящая странное значение X
Выход Y функции работает должным образом, однако значение X выводит какое-то безумное число, может ли кто-нибудь указать пол в моей логике?
Vector2.prototype.rotate = function(degrees){
var angle = degrees * TO_RADIANS; //Convert to radians.
var x = (this.getX() * Math.cos(angle)) - (this.getY() * Math.sin(angle));
var y = (this.getX() * Math.sin(angle)) + (this.getY() * Math.cos(angle));
return new Vector2(x,y);
};
Вектор Ввод (1,0) в эту функцию с поворотом на 90 градусов выводит 6.someDecimalPlaces E-17; что, очевидно, неверно.
Выведенное значение Y однако работает, как ожидалось, и возвращает 1.
Заранее спасибо
6e-17 в значительной степени нулевой. Это должно быть результатом использования арифметики с плавающей запятой. – Sirko
Вы можете улучшить производительность своего вращения, если вычислить sin и cos только один раз. Вероятно, это не проблема, но это может быть важно, если вращение вызывает очень часто. – oyophant
Спасибо вам за ваши комментарии! Завтра математическая голова явно осталась в постели сегодня утром. –