gpt4 book ai didi

javascript - 绘制多个对象时,processingjs 闪烁

转载 作者:行者123 更新时间:2023-11-28 10:21:50 24 4
gpt4 key购买 nike

在processingjs中,我遇到了麻烦。我写的代码有效,但仅适用于一圈。如果有两个或更多圆圈,它们就会开始闪烁(我猜测这是由于背景()的刷新率较慢所致)。我的代码中是否做错了什么(下面发布),或者这只是processingjs速度的限制?

我确信一定有一种方法可以在没有延迟的情况下达到相同的效果。我发现处理工作做得更多,延迟更短。

此外,当两个圆圈重叠时,它们也会开始闪烁(大约是两倍)。有什么办法可以解决这个问题吗?

我的代码:


int count;
int[] circles;
int numCircles;
int color, color1, color2;
void setup()
{
size($(document.body).width(),600);
smooth();
numCircles = 1;
color = random(0,200);
color1 = random(0, 200);
color2 = random(0, 200);
strokeWeight( 10 );<br/>
frameRate( 60 );<p></p>

<pre><code>count = 0;
circles = new int[numCircles*4];
for(int x = 0; x<circles.length; x+=4)
{
circles[x]=random(0,width);
circles[x+1]=random(0,height);
if(random(0,1)==0)
{
circles[x+2] = 1;
}
else
{
circles[x+2] = -1;
}
if(random(0,1)==0)
{
circles[x+3] = 1;
}
else
{
circles[x+3] = -1;
}

}


}



void draw()
{


background(255);
fill(255);
stroke(color, color1, color2);

ellipse(circles[count], circles[count+1], 500, 500);
if(abs(circles[count]-width)<=10)
{circles[count+2]=-abs(circles[count+2])}
if(abs(circles[count+1]-height)<=10)
{circles[count+3]=-abs(circles[count+3])}

if(circles[count]<=10)
{
circles[count+2] = abs(circles[count+2]);
}
if(circles[count+1]<=10)
{
circles[count+3] = abs(circles[count+3]);
}
circles[count]+=circles[count+2];
circles[count+1]+=circles[count+3];

count+=4;
if(count>circles.length-4)
{count = 0;

}

}
</code></pre>

<p></p>

最佳答案

我发现自己做错了什么

通过 for 循环循环遍历绘图函数中的每个圆,我发现我能够更新每个圆的位置,而不会出现导致闪烁的 draw() 函数迭代之间的延迟。

关于javascript - 绘制多个对象时,processingjs 闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440814/

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