Bitmap/Midpoint circle algorithm: Difference between revisions

Content added Content deleted
(Added Kotlin)
(Added Julia language)
Line 1,110: Line 1,110:
}
}
</lang>
</lang>

=={{header|Julia}}==
{{works with|Julia|0.6}}
<lang julia>function drawcircle!(img::Matrix{T}, col::T, x0::Int, y0::Int, radius::Int) where T
x = radius - 1
y = 0
δx = δy = 1
er = δx - (radius << 1)

s = x + y
while x ≥ y
for opx in (+, -), opy in (+, -), el in (x, y)
@inbounds img[opx(x0, el) + 1, opy(y0, s - el) + 1] = col
end
if er ≤ 0
y += 1
er += δy
δy += 2
end
if er > 0
x -= 1
δx += 2
er += (-radius << 1) + δx
end
s = x + y
end
return img
end

# Test
using Images

img = fill(Gray(255.0), 25, 25);
drawcircle!(img, Gray(0.0), 12, 12, 12)</lang>


=={{header|Kotlin}}==
=={{header|Kotlin}}==