Skip to main content

Bresenham's circle algorithm is derived from the midpoint circle algorithm. The algorithm can be generalized to conic sections. package bresenhamcircle; import javax.swing.*; import java.awt.*; public class Bresenhamcircle extends JFrame { public void paint(Graphics g) { //drcircle(400,400,100,g); Bresenhamcircle(g,100,100,70) ; line(g,200,200,300,300); // line(g,100,100,50,50); // line(g,50,50,0,0); // line(g,100,100,) } public void line(Graphics g,int x1,int y1,int x2, int y2) { int dx,dy,e,i,x,y; dx=Math.abs(x2-x1); dy=Math.abs(y2-y1); x=x1; y=y1; g.fillOval(x, y, 2, 2); e=2*(dy-dx); i=1; do { while(e>=0) { y=y+1; e=e-(2*dx); } x=x+1; e=e+2*dy; g.fillOval(x, y,2, 2); i++; }while(i<=dx); } public void Bresenhamcircle (Graphics g,int x,int y,int r) { int d; x=0; y=r; d=3-(2*r); g.fillOval(x,y,2,2); while(x<=y) { //x=x+1; if(d<0) { d= d+4*x+6 ; } else { d=d+4*(x-y)+10 ; y--; } x=x+1; g.drawOval(x+100, y+100, 2,2 ); g.drawOval(100-x, 100+y, 2,2); g.drawOval(x+100, 100-y, 2,2 ); g.drawOval(100-x, 100-y, 2,2 ); g.drawOval(y+100, x+100, 2,2 ); g.drawOval(100-y, x+100, 2,2 ); g.drawOval(y+100, 100-x, 2,2 ); g.drawOval(100-y, 100-x, 2,2 ); } } public static void main(String[] args){ Bresenhamcircle b= new Bresenhamcircle(); b.setTitle("CIRCLE"); b.setSize(1000,1000); b.setVisible(true); b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

Comments