Skip to content

Commit c98ee75

Browse files
author
Maxim Kulikov
committed
pin position of an opposit anchor point during resize with an edge middle anchor point when rect has fixed ratio
1 parent f49819a commit c98ee75

1 file changed

Lines changed: 11 additions & 31 deletions

File tree

src/utils.js

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,11 @@ export const getNewStyle = (type, rect, deltaW, deltaH, ratio, minWidth, minHeig
4646
width = widthAndDeltaW.width
4747
deltaW = widthAndDeltaW.deltaW
4848
if (ratio) {
49-
deltaH = deltaW / ratio
5049
height = width / ratio
51-
// 左上角固定
52-
centerX += deltaW / 2 * cos(rotateAngle) - deltaH / 2 * sin(rotateAngle)
53-
centerY += deltaW / 2 * sin(rotateAngle) + deltaH / 2 * cos(rotateAngle)
54-
} else {
55-
// 左边固定
56-
centerX += deltaW / 2 * cos(rotateAngle)
57-
centerY += deltaW / 2 * sin(rotateAngle)
5850
}
51+
// 左边固定
52+
centerX += deltaW / 2 * cos(rotateAngle)
53+
centerY += deltaW / 2 * sin(rotateAngle)
5954
break
6055
}
6156
case 'tr': {
@@ -104,16 +99,11 @@ export const getNewStyle = (type, rect, deltaW, deltaH, ratio, minWidth, minHeig
10499
height = heightAndDeltaH.height
105100
deltaH = heightAndDeltaH.deltaH
106101
if (ratio) {
107-
deltaW = deltaH * ratio
108102
width = height * ratio
109-
// 左上角固定
110-
centerX += deltaW / 2 * cos(rotateAngle) - deltaH / 2 * sin(rotateAngle)
111-
centerY += deltaW / 2 * sin(rotateAngle) + deltaH / 2 * cos(rotateAngle)
112-
} else {
113-
// 上边固定
114-
centerX -= deltaH / 2 * sin(rotateAngle)
115-
centerY += deltaH / 2 * cos(rotateAngle)
116103
}
104+
// 上边固定
105+
centerX -= deltaH / 2 * sin(rotateAngle)
106+
centerY += deltaH / 2 * cos(rotateAngle)
117107
break
118108
}
119109
case 'bl': {
@@ -144,15 +134,10 @@ export const getNewStyle = (type, rect, deltaW, deltaH, ratio, minWidth, minHeig
144134
deltaW = widthAndDeltaW.deltaW
145135
if (ratio) {
146136
height = width / ratio
147-
deltaH = deltaW / ratio
148-
// 右上角固定
149-
centerX -= deltaW / 2 * cos(rotateAngle) + deltaH / 2 * sin(rotateAngle)
150-
centerY -= deltaW / 2 * sin(rotateAngle) - deltaH / 2 * cos(rotateAngle)
151-
} else {
152-
// 右边固定
153-
centerX -= deltaW / 2 * cos(rotateAngle)
154-
centerY -= deltaW / 2 * sin(rotateAngle)
155137
}
138+
// 右边固定
139+
centerX -= deltaW / 2 * cos(rotateAngle)
140+
centerY -= deltaW / 2 * sin(rotateAngle)
156141
break
157142
}
158143
case 'tl': {
@@ -184,14 +169,9 @@ export const getNewStyle = (type, rect, deltaW, deltaH, ratio, minWidth, minHeig
184169
deltaH = heightAndDeltaH.deltaH
185170
if (ratio) {
186171
width = height * ratio
187-
deltaW = deltaH * ratio
188-
// 左下角固定
189-
centerX += deltaW / 2 * cos(rotateAngle) + deltaH / 2 * sin(rotateAngle)
190-
centerY += deltaW / 2 * sin(rotateAngle) - deltaH / 2 * cos(rotateAngle)
191-
} else {
192-
centerX += deltaH / 2 * sin(rotateAngle)
193-
centerY -= deltaH / 2 * cos(rotateAngle)
194172
}
173+
centerX += deltaH / 2 * sin(rotateAngle)
174+
centerY -= deltaH / 2 * cos(rotateAngle)
195175
break
196176
}
197177
}

0 commit comments

Comments
 (0)