// css
transform-origin: 180px 180px;
transform: scale(3, 3);得到如下结果

ok,我们现在对比一下上面的结果,就会发现,放大3倍的时候,恰好是中间黑色方块占据了全部宽度。接下来我们就可以对这些点与原先没有进行变化(右边)的矩形进行对比就可以得到他们坐标的关系啦
2. 开始对两个坐标进行对比,然后推出公式
现在举一个简单的例子吧,例如我们算一下左上角的坐标(现在已经标记为黄色了)

其实我们其实就可以直接心算出来坐标的关系啦
( 这里左边计算坐标的值是我们鼠标按下的坐标 )
( 这里左边计算坐标的值是我们鼠标按下的坐标 )
( 这里左边计算坐标的值是我们鼠标按下的坐标 )
因为宽高是
360px ,所以分成3等份,每份宽度是
120px因为变化之后容器的宽高是不变的,变化的只有矩形本身
我们可以得出左边的黄色标记坐标是
x:120 y:0 ,右边的黄色标记为
x:160 y:120 (这个其实肉眼看应该就能看出来了,实在不行可以用纸笔算一算)这个坐标可能有点特殊,我们再换几个来计算计算(根据特殊推一般)

蓝色标记:左边:
x:120 y:120 ,右边:
x: 160 y:160 绿色标记:左边:
x: 240 y:240 ,右边:
x: 200: y:200好了,我们差不多已经可以拿到坐标之间的关系了,我们可以列一个表

还觉得不放心?我们可以换一下,缩放倍数与容器宽高等进行计算

不知道大家有没有感觉呢,然后我们就可以慢慢根据坐标推出通用的公式啦
(transformOrigin – downX) / scale * (scale-1) + down – translateX = point
当然,我们或许还有这个
translateX 没有尝试,这个就比较简单一点了,脑内模拟一下,就知道我们可以减去位移的距离就ok啦。我们测试一下我们先修改一下样式,新增一下位移的距离









