fix: 图片旋转后,进行图片裁剪,拖拽异常(#76)

This commit is contained in:
esqbs 2024-03-20 15:51:28 +08:00
parent 89499c0a0a
commit 0ef022df8a

View File

@ -260,21 +260,16 @@ const moveClipRange = (e: MouseEvent) => {
const currentPageX = e.pageX const currentPageX = e.pageX
const currentPageY = e.pageY const currentPageY = e.pageY
let moveX = (currentPageX - startPageX) / canvasScale.value / props.width * 100 const _moveX = (currentPageX - startPageX) / canvasScale.value
let moveY = (currentPageY - startPageY) / canvasScale.value / props.height * 100 const _moveY = (currentPageY - startPageY) / canvasScale.value
if (props.rotate > 45 && props.rotate < 135) { const _moveL = Math.sqrt(_moveX * _moveX + _moveY * _moveY)
moveX = (currentPageY - startPageY) / canvasScale.value / props.width * 100 const _moveLRotate = Math.atan2(_moveY, _moveX)
moveY = -(currentPageX - startPageX) / canvasScale.value / props.height * 100
} const rotate = _moveLRotate - (props.rotate / 180) * Math.PI
if ((props.rotate >= 135 && props.rotate <= 180) || (props.rotate >= -180 && props.rotate <= -135)) {
moveX = -moveX const moveX = ((_moveL * Math.cos(rotate)) / props.width) * 100
moveY = -moveY const moveY = ((_moveL * Math.sin(rotate)) / props.height) * 100
}
if (props.rotate > -135 && props.rotate < -45) {
moveX = -(currentPageY - startPageY) / canvasScale.value / props.width * 100
moveY = (currentPageX - startPageX) / canvasScale.value / props.height * 100
}
let targetLeft = originPositopn.left + moveX let targetLeft = originPositopn.left + moveX
let targetTop = originPositopn.top + moveY let targetTop = originPositopn.top + moveY
@ -329,21 +324,16 @@ const scaleClipRange = (e: MouseEvent, type: OperateResizeHandlers) => {
const currentPageX = e.pageX const currentPageX = e.pageX
const currentPageY = e.pageY const currentPageY = e.pageY
let moveX = (currentPageX - startPageX) / canvasScale.value / props.width * 100 const _moveX = (currentPageX - startPageX) / canvasScale.value
let moveY = (currentPageY - startPageY) / canvasScale.value / props.height * 100 const _moveY = (currentPageY - startPageY) / canvasScale.value
if (props.rotate > 45 && props.rotate < 135) { const _moveL = Math.sqrt(_moveX * _moveX + _moveY * _moveY)
moveX = (currentPageY - startPageY) / canvasScale.value / props.width * 100 const _moveLRotate = Math.atan2(_moveY, _moveX)
moveY = -(currentPageX - startPageX) / canvasScale.value / props.height * 100
} const rotate = _moveLRotate - (props.rotate / 180) * Math.PI
if ((props.rotate >= 135 && props.rotate <= 180) || (props.rotate >= -180 && props.rotate <= -135)) {
moveX = -moveX let moveX = ((_moveL * Math.cos(rotate)) / props.width) * 100
moveY = -moveY let moveY = ((_moveL * Math.sin(rotate)) / props.height) * 100
}
if (props.rotate > -135 && props.rotate < -45) {
moveX = -(currentPageY - startPageY) / canvasScale.value / props.width * 100
moveY = (currentPageX - startPageX) / canvasScale.value / props.height * 100
}
if (ctrlOrShiftKeyActive.value) { if (ctrlOrShiftKeyActive.value) {
if (type === OperateResizeHandlers.RIGHT_BOTTOM || type === OperateResizeHandlers.LEFT_TOP) moveY = moveX / aspectRatio if (type === OperateResizeHandlers.RIGHT_BOTTOM || type === OperateResizeHandlers.LEFT_TOP) moveY = moveX / aspectRatio