that is the fundamental flaw in your method

rather than stepping by degrees or radians....

step by pixels

for all the "orthogonals", it does not matter whether you step by X or by Y

the orthogonals are 0, 45, 90, 135, 180, 225, 270, 315, and 360

but - in between these angles, step by X if the slope of the tangent is between -1 and 1

otherwise, step by Y

you will be much happier with your circle :t