将椭圆打印到屏幕上

时间:2013-11-15 22:47:13

标签: java

以下代码用于生成椭圆形图,但它不是。 你必须投射 网格上的椭圆轮廓。圆的公式是

((x-h)/a)^2 + ((y-h)/b)^2 = 1

代码是:

public class Question33 
{
    public static void main(String[]args) {
        DrawMeAnEllipse(4,12,6,4); // calling the method
    }

    public static void DrawMeAnEllipse(int posX, int posY, int radiusA, int radiusB)
    {   
        int xaxis = 20;
        int yaxis = 20; //scanning the coordinates

        for (int x=0; x<xaxis; x++) {
            for (int y=0; y<yaxis; y++){

                //using equation of ellipse
                int a = Math.abs((posX-x)/radiusA) * ((posX-x)/radiusA);

                int b = Math.abs((posY-y)/radiusB) * ((posY-y)/radiusB);

                int c = Math.abs(a + b);       

                if ( c=1 ) {  //checking if the equation is satisfied
                    System.out.print('#');
                } else {
                    System.out.print(' ') ;
                }
            }
            System.out.println();
        }   
    }   
}

1 个答案:

答案 0 :(得分:2)

我会考虑一些事情。

  1. 注意你正在进行整数除法(你会失去精确度并可能得到错误的结果)
  2. if( c =1 )应为if(c == 1)