@vaselekk

Почему обьект неправильно поворачиваеться?

https://codepen.io/vasilij-shinkorenko/pen/PozVgZw

На 104 строки я попытался с поимошью аналетической геометрии, темы сколярное произведение высчитать синус угла вот формула с картинкой в 5fe8bedd4672f298258585.png
в качестве x и y - у меня позиция точки
я нашел косинус потом с него arccos и радианы перевел в градусы

Но сanvas мне показывает неправильный градус, подскажите где ошибка?
  • Вопрос задан
  • 35 просмотров
Решения вопроса 1
@alexalexes
Потому, что у вас даны координаты точек в objectc, а не векторные точки от начала координат.
Чтобы вычислить косинус, а следовательно - угол, нужно брать смещения по X и по Y (deltaX и deltaY) между двумя точками и уже на основе этого смещения вычислять угол.
var deltaX = objectc[test_prohloe][1] - objectc[key][1];
var deltaY = objectc[test_prohloe][0] - objectc[key][0];
var llength = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
if(llength > 0) // - проверка, что есть различие между точками и есть смысл вычислять новый поворот.
{
var cosin =  deltaX / llength; 

console.log(cosin);

var gradus = Math.acos(cosin);
ctx.rotate(gradus); // rotate square in radians
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы