Java QuadCurve.2D绘制的不需要的行

时间:2015-07-25 17:04:02

标签: java graphics 2d curve quad

“我正在尝试用Java绘制QuadCurve线。当我在每行中对x和y值进行硬编码时,我能够做到这一点,但是当我尝试从循环中绘制线条时,我得到了一条不需要的线条在顶部。我希望将它放在一个循环中,以便我可以在另一个位置创建值并将值提供给我的Drawing类。我认为它可能是一个循环问题。我“进入”代码和值在数组中都是正确的。我在大学,所以任何帮助都表示赞赏。谢谢!

此代码有效:“

    Graphics2D g2 = (Graphics2D) g.create();          
    g2.setPaint(Color.BLUE);

    Shape drawLine1A = new QuadCurve2D.Float(40, 450, 100, 300, 210, 180); 
    Shape drawLine2A = new QuadCurve2D.Float(210, 180, 315, 150, 390, 240);                                               
    Shape drawLine3A = new QuadCurve2D.Float(390, 240, 430, 242, 480, 245);



    g2.draw(drawLine1A);
    g2.draw(drawLine2A);
    g2.draw(drawLine3A);

“此代码无法正常运行:”

    Graphics2D g2 = (Graphics2D) g.create();          
    g2.setPaint(Color.BLUE);
    Shape line;

    int[] x = {40, 100, 210, 210, 315, 390, 390, 430, 480};
    int[] y = {450, 300, 180, 180, 150, 240, 240, 242, 245};
    int k;
    int h;
    for(int i = 0; i < 7; i++)
    {
        k = i + 1;
        h = k + 1; 
        line = new QuadCurve2D.Float(x[i], y[i], x[k], y[k], x[h], y[h]);
        g2.draw(line);

    }

1 个答案:

答案 0 :(得分:0)

“我想到了这一点。我不得不将我增加3,以便在正确的位置设置坐标。简单的修复。我看了太久了!”