領域の塗りつぶしの例題です。楕円を重ね描きしたものです。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