# print ascii circle + axes issue

This program prints a circle in a cartesian plane.

The inputs are: radius, coordinates of the center of the circle (cx,cy), and the character with which we want to print the circle.

If the points of the circle overlap with the axes, the points have priority. I wrote a condition for the printing of the axes in method drawCircle, but the image is distorted…

Something is eluding me… can someone help me to find my mistake?

Here is my entire program (the method that has issues is the last one, drawCircle):

```public class Circle {

public static void main (String[] args){

System.out.println(onCircle(1,2,3,4,5));

drawCircle(1,3,3,'*');
drawCircle(3,3,3,'*');
drawCircle(5,10,12,'*');

}
//Question 1A
public static boolean onCircle (int radius, int cx, int cy, int x, int y){
//default answer is false, but if the inequality holds then it is set to true
boolean isDrawn = false;
isDrawn = true;
}
return isDrawn;
}

//Question 1B
public static void verifyInput (int radius, int cx, int cy){
//if radius is negative, display error message
throw new IllegalArgumentException(" The radius of the circle must be a positive number.");
}
//if the center of the circle with radius 'radius' causes the circle to 'overflow' into other quadrants
//, display error message
throw new IllegalArgumentException("the circle with requested parameters does not fit in the quadrant."
+"Consider moving the center of the circle further from the axes.");
}
}

//Question 1C
public static void drawCircle (int radius, int cx, int cy, char symbol){

//set the values for extension of the axes (aka how long are they)

for(int j=yMax; j>=0; j--){
for(int i=0; i<=xMax; i++){

//set of if-block to print the axes
if (i == 0 && j == 0){
System.out.print('+');
}
else if(i == 0){
if (j == yMax){
System.out.print('^');
}
System.out.print('|');
}
}

else if(j == 0){
if(i == xMax){
System.out.print('>');
}
if(i != xMax && onCircle(radius,cx,cy,i,j) == false){
System.out.print('-');
}
}

//if block to print the circle
//verify for each coordinate (i,j) in the quadrant if they are on circle
//if =true print symbol, if =false print empty character
System.out.print(symbol);
}
else{
System.out.print(' ');
}

}
System.out.println();

}
}
}
```

Here is what I am getting:

As you can see in the picture, the 1st and 3rd circles are fine, but the one that overlaps with the axes is distored

you’re missing 3 continue statements: check out this revised version of your drawCircle method:

```public static void drawCircle (int radius, int cx, int cy, char symbol){

//set the values for extension of the axes (aka how long are they)

for(int j=yMax; j>=0; j--){
for(int i=0; i<=xMax; i++){

//set of if-block to print the axes
if (i == 0 && j == 0){
System.out.print('+');
continue;
}
else if(i == 0){
if (j == yMax){
System.out.print('^');
}
System.out.print('|');
continue;
}
}

else if(j == 0){
if(i == xMax){
System.out.print('>');
}
if(i != xMax && onCircle(radius,cx,cy,i,j) == false){
System.out.print('-');
continue;
}
}

//if block to print the circle
//verify for each coordinate (i,j) in the quadrant if they are on circle
//if =true print symbol, if =false print empty character