Bitmap/Midpoint circle algorithm: Difference between revisions
m
→{{header|FreeBASIC}}: minor change
m (→{{header|REXX}}: added/changed comments and whitespace, changed indentations, simplified some code.) |
m (→{{header|FreeBASIC}}: minor change) |
||
Line 844:
end subroutine draw_circle_sc</lang>
=={{header|FreeBASIC}}==
<lang FreeBASIC>' version
' compile with: fbc -s
' 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)
If decisionOver2 <= 0 Then
▲ 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
Dim As Integer w, h, depth
Randomize Timer
Line 882 ⟶ 884:
ScreenInfo w, h
For i As Integer =
Next
'save screen to BMP file
' empty keyboard buffer
While
Sleep
End</lang>
|