(there was a needless +1.0/-1.0 happening on the window width/height, limiting its accuracy for small values).  Thanks to Richard for the fix.
Circle: save needless repeated division/multiplication by multiplying
radius instead of both the width and height