Ответ 1
В соответствии с вашим текущим Вопросом и запрошенным подтверждением:
var x = termin.top + Math.cos(angle) * div.height;
var y = div.left + Math.sin(angle) * div.height;
Решение можно найти в этом другом SO-ответе для другого вопроса, расширенного здесь:
// return an object with full width/height (including borders), top/bottom coordinates
var getPositionData = function(el) {
return $.extend({
width: el.outerWidth(false),
height: el.outerHeight(false)
}, el.offset());
};
// get rotated dimensions
var transformedDimensions = function(el, angle) {
var dimensions = getPositionData(el);
return {
width: dimensions.width + Math.ceil(dimensions.width * Math.cos(angle)),
height: dimensions.height + Math.ceil(dimensions.height * Math.cos(angle))
};
};
Здесь интерактивный jsFiddle, который предоставляет обновления в режиме реального времени для getPositionData();
.
Вы сможете увидеть значения top
и left
в конце процесса CSS3 Rotation, который вы контролируете.
Ссылка: jsFiddle
Обновление состояния: Вышеупомянутый jsFiddle отлично подходит для 0-90deg и может быть одобрен для всех углов и разных единиц, таких как рад, град и поворот.