Нужна помощь в преобразовании точки (716, 493) в ограничительной рамке в перспективу с углом 0 градусов.
- Текущий курс: 307
- точка: 716, 493
- x1: 711, y1: 554
- x2: 659, y2: 519
- x3: 708, y3: 479
- x4: 758, y4 : 512
В настоящее время эта точка является точной с курсом 307 градусов, но мне нужно переместить эту точку с точки зрения курса 0 градусов. Причина для конверсии - я накладываю эту точку поверх другого ограничивающего прямоугольника с углом наклона 0 градусов. Как вы можете себе представить, точка отклоняется от разницы в градусах между текущей точкой и 0 градусами, но я не уверен, как рассчитать, какой должна быть точка x, y.
Любая помощь приветствуется !!
Для всех таких не гениев, как я, я нашел алгоритм поворота точки относительно начала координат на определенное число градусов:
function rotate(origin, point, angle){
var ox = origin[0];
var oy = origin[1];
var px = point[0];
var py = point[1];
var qx = ox + Math.cos(angle) * (px - ox) - Math.sin(angle) * (py - oy);
var qy = oy + Math.sin(angle) * (px - ox) + Math.cos(angle) * (py - oy);
return [qx,qy];
}
rotate([0,0],[716,493],-53 * Math.PI/ 180)
Так что я считаю, что это правильно. угол должен быть в радианах. Итак, я хотел повернуть свою точку от 307 до 90 градусов, чтобы я взял разницу 360 - 307 = 53, а затем отрицаю угол, чтобы переместить это число градусов по часовой стрелке.
Надеюсь, это поможет тому, кто не гений, как я. И если это не так, извините, мой пост получил -1, чтобы никто больше не смотрел на него и не предлагал идеи.