当前位置: 代码迷 >> java >> 由 Java QuadCurve.2D 绘制的不需要的线
  详细解决方案

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

热度:25   发布时间:2023-07-17 20:30:35.0

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

此代码有效:”

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

    }

“后来我想通了。我必须将 i 增加 3 才能在正确的位置获得坐标。简单的修复。我看它太久了!”

  相关解决方案