Everpure Interview Question

Draw a circle.

Interview Answers

Anonymous

Sep 12, 2018

void DrawCircle(int r, int xCenter, int yCenter) { float r2 = r * r; float x = 0; float y = r; while (y >= x) { y = sqrt(r2 - (x * x)) + 0.5; // round up x++; SetPixel(xCenter + x, yCenter + y); SetPixel(xCenter + x, yCenter - y); SetPixel(xCenter - x, yCenter + y); SetPixel(xCenter - x, yCenter - y); SetPixel(xCenter + y, yCenter + x); SetPixel(xCenter + y, yCenter - x); SetPixel(xCenter - y, yCenter + x); SetPixel(xCenter - y, yCenter - x); } }

Anonymous

Jul 7, 2015

Idea is to start with (r,0) point . Now three possible directions : (x+1,y) or (x+1,y+1), or (x,y+1). Calculate min deviation for all 3 points using x^2+y^2 = r^2. select the one with min deviation and keep on doing until you hit point (0,r)