簡単なグラフィックプログラム例

プログラム例

Dim shiten1 As Integer 'マウスダウン時のX座標を記憶しておくための変数
Dim shiten2 As Integer 'Y座標

'X軸とY軸を引く
Private Sub Command1_Click()

    Form1.CurrentX = 0.1
    Form1.CurrentY = -0.1
    Print "0" '原点に0と書く

    Form1.CurrentX = 10
    Form1.CurrentY = 0
    Print "10"
    
    Form1.CurrentX = -10
    Form1.CurrentY = -0.1
    Print "-10"
    
    Form1.CurrentX = -0.1
    Form1.CurrentY = -9
    Print "-10"
    
    Form1.CurrentX = 0.1
    Form1.CurrentY = 10
    Print "10"
    
    Line (0, 10)-(0, -10)
    Line (-10, 0)-(10, 0)
    
End Sub

'以下の座標に赤で点を打つ
Private Sub Command2_Click()

    PSet (-5, -5), vbRed
    
End Sub

'原点を中心に半径1〜5の円を各色で描く
Private Sub Command3_Click()

    Circle (0, 0), 1, vbWhite
    Circle (0, 0), 2, vbGreen
    Circle (0, 0), 3, vbBlue
    Circle (0, 0), 4, vbRed
    Circle (0, 0), 5, vbYellow

End Sub

'y=2x+4のグラフ
Private Sub Command4_Click()
    
    Print "y = 2x+4"
    Line (-7, -10)-(3, 10), vbGreen
        
End Sub

'x^2-4のグラフ
Private Sub Command5_Click()
    
    Print "二次関数 y = x^2-4"
    Dim i As Single
    
    For i = -10 To 10 Step 0.1
    
        PSet (i, i * i - 4), vbBlue
    
    Next i
    
End Sub

'以下の四角形を書く
Private Sub Command6_Click()

    Line (-5, -5)-(-10, -10), vbWhite, B
    Line (-6, -6)-(-10, -10), vbWhite, B
    Line (-7, -7)-(-10, -10), vbWhite, B
    Line (-8, -8)-(-10, -10), vbWhite, B
    Line (-9, -9)-(-10, -10), vbWhite, B

End Sub

'ランダムの位置にランダムな色を表示 半径0.1の円
Private Sub Command7_Click()

    Dim i As Integer
    
    Randomize '乱数のジェネレータを初期化
    For i = 0 To 100 '100個、円を表示
    
       X = Rnd * 40 - 20 'これでマイナス座標もOK
       Y = Rnd * 40 - 20
        
       Circle (X, Y), 0.1, QBColor(Rnd * 15)
    
    Next i
   
End Sub

'フォームをクリア
Private Sub Command8_Click()
    
    Form1.Cls
    
End Sub

'お遊び(終了ボタンにしてください)
Private Sub Command9_Click()
    
    MsgBox ("重大なエラーが起きました!今から全てのデータを削除します。")
    
End Sub

'フォームロード時の処理
Private Sub Form_Load()
        
    Scale (-10, 10)-(10, -10) 'カスタムスケール
    
    'フォームがスクリーンの中央に表示されるようにする
    Form1.Left = (Screen.Width - Form1.Width) / 2
    Form1.Top = (Screen.Height - Form1.Height) / 2
    
    
End Sub

'MouseDownイベント
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    
    PSet (X, Y)
    
    Form1.CurrentX = X
    Form1.CurrentY = Y
    
    shiten1 = X
    shiten2 = Y
    
    
    Print "←ここ"
    
End Sub

'MouseUpイベント
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    
    Form1.DrawStyle = 2
    Form1.DrawWidth = 1
    
    Line (shiten1, shiten2)-(X, Y), vbRed
    
End Sub