This is an example of finding intersections between any circle and any grid. It's meant to be used for an arc-variant of a line-stepping algorithm; the intersections found can be stored by their angles in a map std::map< float, CircleGridIntersection >, since some angles might have two intersections. A quick lookup in the map can be made to pick the intersections corresponding to the arc. Depending on the sweep direction, one can then travel forwards or backwards through the intersections, starting at a cell given by the starting point. At every intersection, the current cell is changed vertically or horizontally, depending on what axis the circle-intersection was originally found with. This allows a complete "bresenham"-like iteration of all the cells touching or overlapping the arc. © 2021 Digitaldrydock