我正在处理缩放方程式。工作范围是在缩放时将鼠标位置保持为枢轴。 我的意思是,如果选择图片中的一个点,世界应该在鼠标位置周围变得更大, 但线条,弧线或鼠标下方的其他东西应保持在此位置。 我的是,对我来说,花了很多时间,对于每天制作图形的人来说,这是一场儿童游戏。 这是我的实际缩放功能。 xo,yo是形状的点0,0的坐标。
Private Sub dlgSelectShape_MouseWheel(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
Dim p As Point
p = e.Location
p = Me.PointToScreen(p)
p = PictureBox1.PointToClient(p)
If p.X > 0 And p.Y > 0 Then
If e.Delta > 0 Then
'lscale =scale factor
lscale = 0.01 * e.Delta * lscale
Else
'lscale =scale factor
lscale = -lscale / (0.01 * e.Delta)
End If
'xo = point of origin it is the coordinate of the point (0,0)
xo = xo + (-xo + p.X) * lscale / 2
yo = yo + (yo - p.Y) * lscale / 2
Draw()
End If
End Sub