Dim X As Integer
Private Sub Command3_Click() '退出
End
End Sub
Private Sub Form_Load()
X = 1
End Sub
Private Sub Image1_Click()
If X = 1 Then '放大
With Image1
.Width = .Width * 2: .Height = .Height * 2
.Left = .Left: .Top = .Top
End With
X = X + 1
Else '縮小
With Image1
.Width = .Width / 2: .Height = .Height / 2
.Left = .Left: .Top = .Top
End With
X = 1
End If
End Sub
第二部分圖像旋轉90度(使用PictureBox控件):
Option Explicit
Const PI = 3.1415
Dim XX As Integer
Private Sub Form_Load()
TP1.ScaleMode = 3
TP2.ScaleMode = 3
Form1.ScaleMode = 3
XX = 1
End Sub
Private Sub TP1_Click()
If XX = 1 Then
Dim X As Integer, Y As Integer '點在TP1中的坐標
Dim X1 As Integer, Y1 As Integer '過渡坐標
Dim X2 As Double, Y2 As Double '過渡坐標
Dim X3 As Double, Y3 As Double '點經過旋轉後在TP2中的坐標
Dim angle As Double '旋轉的角度
Dim radian As Double '旋轉的弧度
angle = 90 '設定旋轉的角度,可以修改,如果修改為負值,為順時針旋轉,也可以使用文本框
radian = angle * PI / 180 '獲得旋轉的弧度
TP2.Cls '清除TP2中的圖片
For X = 0 To TP1.Width
For Y = 0 To TP1.Height
X1 = X - TP1.Width \ 2
Y1 = Y - TP1.Height \ 2
'將坐標軸原點移動到TP1的中心後原來坐標為(x,y)的點的新坐標為(X1,Y1)
X2 = X1 * Cos(radian) + Y1 * Sin(radian) '獲得在更改坐標原點後旋轉後該點的X坐標
Y2 = Y1 * Cos(radian) - X1 * Sin(radian) '獲得在更改坐標原點後旋轉後該點的Y坐標
X3 = X2 + TP1.Width \ 2 '獲得恢復坐標原點後旋轉後的X坐標
Y3 = Y2 + TP1.Height \ 2 '獲得恢復坐標原點後旋轉後的Y坐標
If X3 > 0 And X3 < TP2.Width - 1 And Y3 > 0 And Y3 < TP2.Height - 1 Then
TP2.PSet (X3, Y3), TP1.Point(X, Y) '將TP1中(x,y)點復制到TP2的(X3,Y3)點
'TP1的Point方法是指定各點的顏色,TP2的PSet方法是設置各個點的顏色
End If
Next Y
Next X
XX = XX + 1
Else
TP2.Cls '清除TP2中的圖片
XX = 1
End If
End Sub