CS 248: Introduction to Computer Graphics

Pat Hanrahan


Grader: Reid

5. (10 points) Circle Drawing

Answer:
sector(int r)
	{
	  int x = r;
	  int y = 0;

	  e = -r;
	  dedy = 1;
	  dedx = 2 - r - r;

          while( x > y ) {

	    point( x, y );
	    e    += dedy;
	    dedy += 2
	    y    += 1;

	    if ( e >= 0 ) {
		
		e    += dedx;
		dedx += 2;
		x    -= 1;

	    }
	  }
	}

Scoring:

10 points for the correct answer for either the algorithm originally presented or the corrected version presented during the midterm.
5 points for a deriving the finite difference step but not correctly coding the new finite difference steps.
-2 points if additional adds in the "e += dedx" and "e += dedy" step.
-1 point if the sign in the "dedx += 2" step is incorrect.

Copyright © 1997 Pat Hanrahan