scale.js
630 Bytes
/**
* 获取最新缩放值
* @param oldScale 上一次触摸结束后的缩放值
* @param oldDistance 上一次触摸结束后的双指距离
* @param zoom 缩放系数
* @param touch0 第一指touch对象
* @param touch1 第二指touch对象
* @returns {*}
*/
export const getNewScale = (oldScale, oldDistance, zoom, touch0, touch1) => {
let xMove, yMove, newDistance
// 计算二指最新距离
xMove = Math.round(touch1.x - touch0.x)
yMove = Math.round(touch1.y - touch0.y)
newDistance = Math.round(Math.sqrt(xMove * xMove + yMove * yMove))
return oldScale + 0.001 * zoom * (newDistance - oldDistance)
}