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

Java QuadCurve.2D绘制的不需要的线,java,graphics,2d,curve,Java,Graphics,2d,Curve,“我正试图用Java绘制一条四次曲线。当我在每一行中硬编码x和y值时,我能够做到这一点,但是当我试图从循环中绘制线时,我会在顶部得到一条不需要的线。我想让它在一个循环中,这样我就可以在另一个位置创建值,并将这些值提供给我的绘图类。我认为这可能是一个循环问题。我“进入”了代码,数组中的值都是正确的。我在上大学,所以非常感谢你的帮助。谢谢大家! 此代码有效: “此代码无法正常工作:” Graphics2D g2=(Graphics2D)g.create(); g2.setPaint(颜色为蓝色);

“我正试图用Java绘制一条四次曲线。当我在每一行中硬编码x和y值时,我能够做到这一点,但是当我试图从循环中绘制线时,我会在顶部得到一条不需要的线。我想让它在一个循环中,这样我就可以在另一个位置创建值,并将这些值提供给我的绘图类。我认为这可能是一个循环问题。我“进入”了代码,数组中的值都是正确的。我在上大学,所以非常感谢你的帮助。谢谢大家!

此代码有效:

“此代码无法正常工作:”

Graphics2D g2=(Graphics2D)g.create();
g2.setPaint(颜色为蓝色);
形线;
int[]x={401001020121315390390430480};
int[]y={450300180180150240240242,245};
int k;
int-h;
对于(int i=0;i<7;i++)
{
k=i+1;
h=k+1;
直线=新的四元曲线2d.浮点(x[i],y[i],x[k],y[k],x[h],y[h]);
g2.画(线);
}
“这是我后来想出来的。为了使坐标在正确的点上,我必须将i增加3。简单的修复。我看了太久了!“

”我后来明白了。为了使坐标在正确的点上,我必须将i增加3。简单的修复。我看了太久了!"

    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);

    }