Для тех из вас, кто нашел это, как я через Google ...
Ниже приведен ответ в форме JavaScript / jQuery, где $element
- это $('#element')
объект jQuery, iDegrees
- это угол, который вы хотите повернуть, iX
/ iY
- это координаты точки Вы хотите знать пункт назначения, а iCenterXPercent
/ iCenterYPercent
представляет процентное содержание элемента (согласно CSS transform-origin
), в котором будет происходить поворот:
function XYRotatesTo($element, iDegrees, iX, iY, iCenterXPercent, iCenterYPercent) {
var oPos = $element.position(),
iCenterX = ($element.outerWidth() * iCenterXPercent / 100),
iCenterY = ($element.outerHeight() * iCenterYPercent / 100),
iRadians = (iDegrees * Math.PI / 180),
iDX = (oPos.left - iCenterX),
iDY = (oPos.top - iCenterY)
;
return {
x: iCenterX + (iDX * Math.cos(iRadians)) - (iDY * Math.sin(iRadians)),
y: iCenterY + (iDX * Math.sin(iRadians)) + (iDY * Math.cos(iRadians))
};
};
например:
Где верхний левый угол <div id='element'>...</div>
заканчивается при повороте на 45 градусов вокруг его нижнего левого угла?
var oXY = XYRotatesTo($('#element'), 45, 0, 0, 0, 100);