Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '第1題
- Private Sub Command1_Click()
- Text2.Text = ""
- For i = 1 To Len(Text1.Text)
- Text2.Text = Text2.Text & Hex(Asc(Mid(Text1, i, 1)))
- Next
- End Sub
- '第2題
- Private Sub Command2_Click()
- Text3.Text = ""
- 'step 2表示一次取兩位,因為16進位組合成字元,每次都是2位為一組,比如a為61(hex)
- For i = 1 To Len(Text2.Text) Step 2
- Text3.Text = Text3.Text & Chr(Val("&H" & Mid(Text2, i, 2)))
- Next
- End Sub
- '第3題,第4題
- Private Sub Timer1_Timer()
- '第三題,時鐘每滴答一次,取一個十六進位數字,轉成十進位後丟到sincos繪圖。
- '為什麼不用FOR迴圈取每個數字並繪圖,其實也是可以,但FOR迴圈太快了,你無法看到每個數字轉動的效果。
- Me.Cls '清除form上面的所有作畫
- '繪製圓心與刻度16進位
- x = (Image1.Left + Image1.Width / 2)
- y = (Image1.Top + Image1.Height / 2)
- Me.DrawWidth = 1
- Me.Circle (x, y), 2000
- For i = 0 To 15
- Me.CurrentX = x + Cos(i * 2 / 16 * 3.14) * 2300
- Me.CurrentY = y + Sin(i * 2 / 16 * 3.14) * 2300
- Me.Print Hex(i)
- Next
- '第三題
- '計算位置與取字
- 'Label1 = (Label1 + 1) '每次進一位
- 'If Label1 <= Len(Text2) Then
- 'a = Val("&H" & Mid(Text2.Text, Label1, 1))
- 'Else
- 'Timer1.Interval = 0
- 'End If
- '開始繪圖
- 'x = (Image1.Left + Image1.Width / 2) + 2000 * Cos(a * 2 / 16 * 3.14) 'cos(n),n的值由0-2PI
- ' y = (Image1.Top + Image1.Height / 2) + 2000 * Sin(a * 2 / 16 * 3.14)
- 'Me.Circle (x, y), 200, vbRed
- '畫線
- ' Line ((Image1.Left + Image1.Width / 2), (Image1.Top + Image1.Height / 2))-(x, y), vbRed
- '第四題
- If Label1 <= Len(Text2.Text) Then
- If Label2 = Label3 Then
- Timer1.Interval = 1000
- Label1 = (Label1 + 1)
- Label2 = Val("&H" & Mid(Text2, Label1, 1)) 'Label2為當前的數字
- Label3 = Val("&H" & Mid(Text2, Label1 + 1, 1)) ' Label3為目標
- If Label3 > Label2 Then
- If Label3 - Label2 < 8 Then
- Label4 = 1
- Else
- Label4 = -1
- End If
- ElseIf Label3 < Label2 Then
- If Label2 - Label3 < 8 Then
- Label4 = -1
- Else
- Label4 = 1
- End If
- Else
- Label4 = 0
- End If
- x = (Image1.Left + Image1.Width / 2) + 2000 * Cos(Label2 * 2 / 16 * 3.14)
- y = (Image1.Top + Image1.Height / 2) + 2000 * Sin(Label2 * 2 / 16 * 3.14)
- Me.DrawWidth = 8
- Line ((Image1.Left + Image1.Width / 2), (Image1.Top + Image1.Height / 2))-(x, y), vbRed
- Me.Circle (x, y), 200, vbRed
- Else
- Me.DrawWidth = 3
- Timer1.Interval = 500
- Label2 = (Val(Label2) + Label4 + 16) Mod 16
- x = (Image1.Left + Image1.Width / 2) + 2000 * Cos(Label2 * 2 / 16 * 3.14)
- y = (Image1.Top + Image1.Height / 2) + 2000 * Sin(Label2 * 2 / 16 * 3.14)
- Line ((Image1.Left + Image1.Width / 2), (Image1.Top + Image1.Height / 2))-(x, y), vbBlack
- End If
- Else
- Timer1.Interval = 0
- End If
- End Sub
- Private Sub Command3_Click()
- '第三題,開啟時鐘與繪圖
- Timer1.Interval = 1000
- Label1 = 0
- Me.Cls '清除form上面的所有作畫
- '繪製圓心與刻度16進位
- x = (Image1.Left + Image1.Width / 2)
- y = (Image1.Top + Image1.Height / 2)
- Me.Circle (x, y), 2000
- For i = 0 To 15
- Me.CurrentX = x + Cos(i * 2 / 16 * 3.14) * 2300
- Me.CurrentY = y + Sin(i * 2 / 16 * 3.14) * 2300
- Me.Print Hex(i)
- Next
- End Sub
Add Comment
Please, Sign In to add comment