getring(atom/M,radius)
var/list/ring=list()
var/turf/T
for(T as turf in range(radius+1,M))
if(abs(distance(T,M)-radius) < 0.5) ring += T
return ring
This code returns turfs inside of a ring of a variable radius. The problem here is that if the radius is above 36, significant portions of the circle get chopped off and, as you increase the radius, it almost disappears completely. I'm using the getring() proc from AbyssDragon's BasicMath library, and I'm wondering if there is some way I can improve the algorithm? Or should I look into some other algorithm?