图形,缩放功能

时间:2015-06-22 16:10:12

标签: vb.net graphics zoom

我正在处理缩放方程式。工作范围是在缩放时将鼠标位置保持为枢轴。 我的意思是,如果选择图片中的一个点,世界应该在鼠标位置周围变得更大, 但线条,弧线或鼠标下方的其他东西应保持在此位置。 我的是,对我来说,花了很多时间,对于每天制作图形的人来说,这是一场儿童游戏。 这是我的实际缩放功能。 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

0 个答案:

没有答案