領域の塗りつぶしの例題です。楕円を重ね描きしたものです。Drawpaint ルーチンの中で、Win32APIのExtFloodFillを使って塗りつぶしをしています。
Public Sub proc16() 'Color Leaves
Dim Igra, p, c1, c2, c3, c4, c5
a = 220
c1 = &HFF0000 : c2 = &HFF00& : c3 = &HFF&
c4 = &HFFC0FF : c5 = &HFFFF&
Dperas : Dpwind 0, 0, 640
Select Case Ivar
Case 1: N = 2
Case 2: N = 3
Case 3: N = 4
Case 4: N = 6
Case Else: N = 2
End Select
Igra = 0: K = 200
For p = 1 To 0.2 Step -0.2
For Th = 0 To 2 * pie + 0.1 Step pie / K
r = Abs(a * Cos(N * Th)) * p
X = r * Cos(Th)
Y = r * Sin(Th)
DrawPolyLine X, Y, Igra
Next Th
Igra = 0
Next p
'
For m = 1 To 5
Select Case m
Case 1: FormGraphic.Picture1.FillColor = c1: p = 1
Case 2: FormGraphic.Picture1.FillColor = c2: p = 0.8
Case 3: FormGraphic.Picture1.FillColor = c3: p = 0.6
Case 4: FormGraphic.Picture1.FillColor = c4: p = 0.4
Case 5: FormGraphic.Picture1.FillColor = c5: p = 0.2
End Select
For Th = 0 To 2 * pie Step pie / N
r = a * p - 10
X = r * Cos(Th)
Y = r * Sin(Th)
FormGraphic.Picture1.FillStyle = 0
Drawpaint X, Y
Next Th
Next m
End Sub