網頁

2010年12月19日 星期日

使用 VB 寫一個畫多邊形的程式

最近寫了一個畫多邊形的程式,以做為教學之用,一個圓的半徑大小為 1
使用極座標畫出的圖如下 :

 
使用物件 command1, command2, text1, form1, pict

原始程式碼如下:

Private Sub Command1_Click()
Dim x(50) As Single, y(50) As Single '宣告最多畫 50 個角
angle = Val(Text1.Text) '要畫的角數
If angle > 50 Or angle < 3 Then
  MsgBox ("要畫的角數最少 3 , 最多 50 !!")
Else
  Pict.Cls '清除表單
  Pict.Scale (-1.1, 1.1)-(1.1, -1.1)   '設定範圍
  pi = 3.14159
  st = (2 * pi) / angle  '差值=2pi /angle
  c = 0   '令 c 的初值為 0
  '儲存各點的座標
  For i = 0 To 2 * pi Step st
     c = c + 1
     x(c) = Cos(i)
     y(c) = Sin(i)
  Next i
  '畫各點相連的線
  For i = 1 To angle - 1
     Pict.Line (x(i), y(i))-(x(i + 1), y(i + 1))
  Next i
  '最後一點連回第一點
  Pict.Line -(x(1), y(1))
 
End If
End Sub
Private Sub Command2_Click()
Dim x(50) As Single, y(50) As Single '宣告最多畫 50 個角
angle = Val(Text1.Text) '要畫的角數
If angle > 50 Or angle < 3 Then
  MsgBox ("要畫的角數最少 3 , 最多 50 !!")
Else
  Pict.Cls '清除表單
  Pict.Scale (-1.1, 1.1)-(1.1, -1.1)   '設定範圍
  pi = 3.14159
  st = (2 * pi) / angle  '差值=2pi /angle
  c = 0   '令 c 的初值為 0
  '儲存各點的座標
  For i = 0 To 2 * pi Step st
     c = c + 1
     x(c) = Cos(i)
     y(c) = Sin(i)
  Next i
  '畫每一點相連其他點的線
  For i = 1 To angle - 1
    For j = i + 1 To angle
       Pict.Line (x(i), y(i))-(x(j), y(j))
    Next j
  Next i
End If
End Sub

1 則留言:

ReKTDoug 提到...

請問大大 您這個多邊形如何改變成2011工科技藝競賽的電腦軟體設計第一題術科?