@@ -41,10 +41,10 @@ export function collectVerticalPoint(props: CollectPointProps) {
41
41
activeObject . set ( 'width' , width * sx ) ;
42
42
if ( isUniform ) activeObject . set ( 'height' , height * sx ) ;
43
43
}
44
- const dx = getDisByOriginX ( activeObject , v * dirX ) ;
44
+ const dx = getDisByOriginX ( activeObject , v , dirX ) ;
45
45
if ( isUniform ) {
46
46
const h = activeObject . _getTransformedDimensions ( ) . y - dim . y ;
47
- const dy = getDisByOriginY ( activeObject , h * dirY ) ;
47
+ const dy = getDisByOriginY ( activeObject , h , dirY ) ;
48
48
activeObject . set ( 'top' , top + dy ) ;
49
49
}
50
50
activeObject . set ( 'left' , left + dx ) ;
@@ -80,10 +80,10 @@ export function collectHorizontalPoint(props: CollectPointProps) {
80
80
activeObject . set ( 'height' , height * sy ) ;
81
81
if ( isUniform ) activeObject . set ( 'width' , width * sy ) ;
82
82
}
83
- const dy = getDisByOriginY ( activeObject , v * dirY ) ;
83
+ const dy = getDisByOriginY ( activeObject , v , dirY ) ;
84
84
if ( isUniform ) {
85
85
const w = activeObject . _getTransformedDimensions ( ) . x - dim . x ;
86
- const dx = getDisByOriginX ( activeObject , w * dirX ) ;
86
+ const dx = getDisByOriginX ( activeObject , w , dirX ) ;
87
87
activeObject . set ( 'left' , left + dx ) ;
88
88
}
89
89
activeObject . set ( 'top' , top + dy ) ;
@@ -111,13 +111,13 @@ function getDistanceList(point: Point, list: Point[], type: 'x' | 'y') {
111
111
return { dis, arr } ;
112
112
}
113
113
114
- function getDisByOriginX ( target : FabricObject , v : number ) {
115
- const dArr = [ 0 , v / 2 , v ] ;
116
- if ( v < 0 ) dArr . reverse ( ) ;
114
+ function getDisByOriginX ( target : FabricObject , v : number , dir : - 1 | 1 ) {
115
+ const dArr = [ 0 , ( v / 2 ) * dir , v * dir ] ;
116
+ if ( dir == - 1 ) dArr . reverse ( ) ;
117
117
return dArr [ originXArr . indexOf ( target . originX ) ] ;
118
118
}
119
- function getDisByOriginY ( target : FabricObject , v : number ) {
120
- const dArr = [ 0 , v / 2 , v ] ;
121
- if ( v < 0 ) dArr . reverse ( ) ;
119
+ function getDisByOriginY ( target : FabricObject , v : number , dir : - 1 | 1 ) {
120
+ const dArr = [ 0 , ( v / 2 ) * dir , v * dir ] ;
121
+ if ( dir == - 1 ) dArr . reverse ( ) ;
122
122
return dArr [ originYArr . indexOf ( target . originY ) ] ;
123
123
}
0 commit comments