问题描述
“我正在尝试在 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);
}
1楼
“后来我想通了。我必须将 i 增加 3 才能在正确的位置获得坐标。简单的修复。我看它太久了!”