円グラフを描く
                                                         玄関へお回り下さい。
円グラフを描く                 (025)
       Option Explicit   'SampleNo=025 WindowsXP VB6.0(SP5) 2002.04.27

Private Sub Command1_Click()
  Dim Data(10) As Integer
  Dim j     As Integer
  Dim i     As Integer
  Dim Total   As Integer
  Dim RadianStr As Single
  Dim RadianEnd As Single
  Command1.Cancel = Not Command1.Cancel  'クリック毎にパターンを変更
  For i = 10 To 100 Step 10
    Data(j) = i             'データ作成
    Total = Total + Data(j)
    j = j + 1
  Next i
  With Picture1
    .Cls
    .DrawWidth = 2       '線の太さを設定
    RadianEnd = 0.000000001   '基線を設定 0では最初の色が塗れない
    For i = 0 To 9
      RadianStr = RadianEnd     '円弧の開始点をラジアン単位で求める
      RadianEnd = RadianStr + 6.28 * Data(i) / Total '円弧の終了点
      If Command1.Cancel Then
        .FillStyle = vbFSSolid           '塗り潰す場合
      Else
        .FillStyle = vbHorizontalLine + (i Mod 5)  'パターンの場合
      End If
      .FillColor = QBColor((9 + i) Mod 16)      'カラーの指定
      '描画 (Picture1の幅と高さの中心を円の中心とし半径を高さの
      '4分の1とし円弧の開始点と終了点をラジアン単位で指定して描く
      Picture1.Circle (.ScaleWidth \ 2, .ScaleHeight \ 2), _
                .ScaleHeight / 2.5, , -RadianStr, -RadianEnd
    Next
  End With
End Sub


Private Sub Form_Load()
  Form1.Move 0, 0, 4950, 6000
  Picture1.Move 150, 150, 4500, 4500
End Sub

実際の使用に際しては、データの作成のところで実際のデータを読込、凡例等も必要になります。 図形の書き方の参考にでもして下さい。



2002/04/27