Все математические функции в JavaScript используют радианы вместо градусов.
И все же они либо неравны, либо я далеко от базы.
Преобразование из градусов в радианы:
var rad = angle * Math.PI / 180
Угол 90 градусов равно 1,57079633 радиан
Косинус угла 90 градусов равен 0.
Косинус 1.57079633 радиан равен -3.20510345 × 10-9.
Обратите внимание, что в Javascript все делается за один шаг, чтобы избежать ошибок округления:
var cos = Math.cos(angle * Math.PI / 180);
Я, очевидно, здесь упускаю что-то очевидное, но, чёрт побери, это не всё в порядке.