ベジエ曲線を描画するには

ベジエ曲線を描画してみます。
キーワードは「PolyBezier()関数」です。
PolyBezier()関数は開始点・制御点・終点をPOINTAPI構造体の配列として
与えることでベジエ曲線を描画します。
サンプルでは点の配列を7箇所(ランダム)与えることで
2本のベジエ曲線を描画しています。

実行時の様子

Private Type POINTAPI
    x As Long               'X座標
    y As Long               'Y座標
End Type
'1 つまたは複数のベジエ曲線を描画する
Private Declare Function PolyBezier Lib "gdi32.dll" _
        (ByVal hdc As Long, lpPoint As Any, ByVal cPoints As Long) As Long

Private Sub Form_Load() Me.Picture1.ScaleMode = 3 'ピクセルモード Me.Picture1.BackColor = vbWhite '背景色 End Sub
Private Sub Picture1_Paint() Dim lpPoints(6) As POINTAPI Dim dx, dy dx = Me.Picture1.ScaleWidth dy = Me.Picture1.ScaleHeight Me.Picture1.ForeColor = vbRed Randomize For a = 0 To UBound(lpPoints) lpPoints(a).x = dx * Rnd: lpPoints(a).y = dy * Rnd Next Call PolyBezier(Me.Picture1.hdc, lpPoints(0), 7) End Sub
ダウンロード