昨天朋友建议我在游戏引擎中实现缩放控件的功能,于是自己花了两天的时间
研究了以鼠标为中心缩放控件的底层代码,代码的实现并不依赖于任何语言,也就是说
可以在任何语言中使用,以下是代码实现的思想:
分析:
先来分析一下效果,这种以鼠标为中心坐标的缩放功能是通过Flash研究得出
先来分析一下效果,这种以鼠标为中心坐标的缩放功能是通过Flash研究得出
的,它的思想是这样, 当使用放大镜时,鼠标点击画布它就会以鼠标坐标为中心等比
例缩放对象,现在通过下面步骤去研究这种效果是怎么样实现的。
注意:下面是以横坐标为例
1.获取鼠标坐标,通过计算 MousePosFormTopLeft = 鼠标坐标 - 对象坐标
2.通过MousePosFormTopLeft 与 控件的宽比较计算出鼠标坐标到对象最近边沿的距离
然后对边沿距离进行缩放,然后再计算对象缩放后的新坐标
1.获取鼠标坐标,通过计算 MousePosFormTopLeft = 鼠标坐标 - 对象坐标
2.通过MousePosFormTopLeft 与 控件的宽比较计算出鼠标坐标到对象最近边沿的距离
然后对边沿距离进行缩放,然后再计算对象缩放后的新坐标