An algorithm for the drawing of circles is proposed in this paper. It differs greatly from the conventional algorithms that select one pixel per iteration because it can generate at least two pixels every time an I/O operation is executed. The algorithm is presented on the observation that the discrete loci of a circle are composed of a series of horizontal displacements and diagonal displacements. By locating and drawing these displacements one by one, the algorithm can effectively increase the speed of circle drawing due to the great reduction in the number of I/O operations. The experiment results prove that the circle-drawing speed of the algorithm can be almost doubled comparing with of the Bresenham algorithm. Furthermore, the algorithm can be generalized to the production of other conics in computer graphics.