Я разрабатываю приложение Canvas для HTML5, и он включает чтение xml файла, который описывает положение стрелок, референций и других фигур, которые мне нужно рисовать на холсте.
Пример компоновки XML:
<arrow left="10" top="20" width="100" height="200" rotation="-40" background-color="red"/>
<rect left="10" top="20" width="100" height="200" rotation="300" background-color="red"/>
Если объект вращается, он включает вычисление положения точки (называемое P новым положением объекта после вращения) при повороте вокруг другой точки (слева, сверху). Я пытаюсь придумать общую функцию/формулу, которую я могу использовать для вычисления этой точки P, но моя математика немного слаба, и я не могу определить, какую формулу дуги/касательной я намерен использовать.
Можете ли вы помочь мне придумать формулу, которую я могу использовать для вычисления точки P для поворотов, которая может быть как положительной, так и отрицательной?
В приведенном выше примере: точка (14,446) - левая, верхняя точка и точка (226,496) - это средняя точка объекта, когда НЕ повернуты так, что точка = (левая + ширина /2, верхняя + высота /2) и синяя точка - это средняя точка при повороте. Я знаю, как вычислить длину линии между точками (14,446) и (226,496), но не как вычислить голубую точку x, y - BTW: длина этой линии совпадает с длиной между синей точкой и (14446)
len = sqrt( (496-446)^2 + (226-14)^2 );
= 227.56;