' version 15-10-2016 ' compile with: fbc -s gui ' Variant with Integer-Based Arithmetic from Wikipedia page: ' Midpoint circle algorithm Sub circle_(x0 As Integer, y0 As Integer , radius As Integer, Col As Integer) Dim As Integer x = radius Dim As Integer y ' Decision criterion divided by 2 evaluated at x=r, y=0 Dim As Integer decisionOver2 = 1 - x While(x >= y) PSet(x0 + x, y0 + y), col PSet(x0 - x, y0 + y), col PSet(x0 + x, y0 - y), col PSet(x0 - x, y0 - y), col PSet(x0 + y, y0 + x), col PSet(x0 - y, y0 + x), col PSet(x0 + y, y0 - x), col PSet(x0 - y, y0 - x), col y = y +1 If decisionOver2 <= 0 Then decisionOver2 += y * 2 +1 ' Change in decision criterion for y -> y +1 Else x = x -1 decisionOver2 += (y - x) * 2 +1 ' Change for y -> y +1, x -> x -1 End If Wend End Sub ' ------=< MAIN >=------ ScreenRes 600, 600, 32 Dim As Integer w, h, depth Randomize Timer ScreenInfo w, h For i As Integer = 1 To 10 circle_(Rnd * w, Rnd * h , Rnd * 200 , Int(Rnd *&hFFFFFF)) Next 'save screen to BMP file BSave "Name.BMP", 0 ' empty keyboard buffer While Inkey <> "" : Wend WindowTitle "hit any key to end program" Sleep End