投稿者 cupud  (社会人) 投稿日時 2009/8/12 08:18:53
線図で良いならVB6機能で出来ます。
DrawMode = 7 で2度書きすると、消えるという機能です。

Private Sub ComGo_Click()
   Dim prTb(360) As Integer
   Dim iyTb(360) As Integer
   Dim ii As Integer, ix As Integer, iy As Integer, iw As Long
   Dim aa As Single, pi As Single
   serSec = Timer
   canFlg = 0
   MousePointer = 11
 '-  -
   Me.ForeColor = RGB(200, 80, 40)
   Me.ScaleMode = 3
   Me.DrawMode = 7
   aa = 100#
   pi = 3.1415927
   For ii = 0 To 180
     For ix = 0 To 360
       iy = aa * Sin(4# * ix * pi / 180# - 2# * ii * pi / 180#) _
               * Sqr((360 - ix * 0.8) / 360)
       iyTb(ix) = iy + aa + 50
     Next ix
   '-  -
     If 0 < ii Then
        Me.PSet (10, prTb(0))
        For ix = 1 To 360
          Me.Line -(ix + 10, prTb(ix)) '←DrawMode=7が関係
        Next ix
     End If
   '-  -
     Me.PSet (10, iyTb(0))
     For ix = 1 To 360
       Me.Line -(ix + 10, iyTb(ix))
     Next ix
   '-  -
     For ix = 0 To 360
       prTb(ix) = iyTb(ix)
     Next ix
   '-  -
     Call subWait(iw)
     Label1.Caption = "ii=" & CStr(ii) & " (" & CStr(iw) & ")"
     Label1.Refresh   '←無くても良いか?
     DoEvents         '←注意と言われる
     If canFlg = 1 Then Exit For
   Next ii
   MousePointer = 0
End Sub

Private Sub subWait(argCnt As Long)
  Dim locCnt As Long, locTim As Single
  Do
    locCnt = locCnt + 1
    locTim = Timer
     If serSec + 0.1 < locTim Then Exit Do
     If 1000000 < locCnt Then Exit Do
  Loop
  serSec = locTim
  argCnt = locCnt
End Sub

ただ、VB6では塗りつぶしができないので、そうする時はWinAPIが必須です。
しかし今更そんなので苦労するなら、VB2005以降が良いですね。