gpt4 book ai didi

java - 这个 for 循环不会绘制矩形,但会写入控制台

转载 作者:行者123 更新时间:2023-12-02 03:28:22 26 4
gpt4 key购买 nike

for (int i = 0; i < 50; i++){
noStroke();
fill(50,50,50);
rect(0,0,100,100,i);
System.out.println(i);
delay(100);
}

这是for循环,它将写入数字0到50,然后绘制一个矩形。目标是让它绘制拐角处半径逐渐增大的矩形。它不执行 rect(),但执行 System.out.println();。这是用java处理写的。

最佳答案

不要使用delay()函数创建动画。

draw() 函数完成之前,屏幕上不会绘制任何内容(或者如果您没有使用 draw() 函数,则直到代码结束)。所有内容都绘制到屏幕外缓冲区,然后当 draw() 函数完成时,缓冲区一次全部绘制到屏幕。

实际上,您正在向离屏缓冲区绘制一个矩形,等待 100 毫秒,向离屏缓冲区绘制另一个矩形,等待 100 毫秒,绘制另一个矩形,依此类推。在所有等待完成之前,您实际上不会在屏幕上看到任何内容。

如果您想创建动画,请不要使用循环。相反,请使用 draw() 函数以及您递增的草图级变量(或者仅使用预定义的 frameCount 变量)。

另一个问题是您只是一遍又一遍地绘制相同颜色的矩形。您正在绘制一个灰色矩形,然后在其顶部绘制一个稍小的灰色矩形,然后在其顶部绘制一个稍小的矩形,依此类推。因此,您实际上永远不会看到较小的矩形,因为它们混合到您正在绘制的第一个矩形中。

运行此程序以更好地了解发生了什么:

noStroke();
fill(50,50,50);
rect(0,0,100,100,0);
fill(255, 0, 0);
rect(0,0,100,100,10);
fill(0, 255, 0);
rect(0,0,100,100,20);

关于java - 这个 for 循环不会绘制矩形,但会写入控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38469441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com