gpt4 book ai didi

java - 如何在processingJS中创建一个空的int数组?

转载 作者:行者123 更新时间:2023-12-01 13:49:03 25 4
gpt4 key购买 nike

我正在尝试创建大量 int 值并尝试将它们添加到空 int 数组中,但它不起作用。我已经添加了我的代码,就像 atm 一样。只要插上它就应该可以工作。所有有问题的部分都被注释掉了。

我真正想做的就是让它使用我希望它使用的完美颜色。因此,已经创建了代表颜色的数字列表,我需要将这些颜色添加到数组中,以便我可以使用填充来初始化它们。所以问题是如何将所有这些值添加到空 int 数组中。

int rotationCount = 0;
int translateX ;
int translateY ;
int currentTime = 0;
int circlesOrLines ;
int timeLimit ;
int r;
int g;
int b;
//int[] values = new values [];
int maxValue = 226;
int minValue = 75;
int timeIndex = 0;

void setup () {
size(500, 700);
r = 226;
g = 226;
b = 75;

smooth();
background(0);
rectMode(CENTER);
frameRate (10);
noStroke();
fill(r, g, b, 30);
translateX = width/2;
translateY = height/2;
timeLimit = 10000;
circlesOrLines = 0;
currentTime = millis();
//generateColor ();

}

void draw () {
background(80);
/*
timeIndex++;
if (timeIndex >= values.length){
timeIndex = 0;
}
fill(values [timeIndex] , values [timeIndex + 1], values [timeIndex + 2], 30);

*/
fill(r, g, b, 30);
int passedTime = millis() - currentTime;
println (" the passed time is " + passedTime);

translate(translateX % width, translateY % height);


translateX += 3 % width;
translateY += 3 % height;

rotationCount += (PI/2008);
if (passedTime < timeLimit) {
makeCircles ();
}
else {
if (passedTime >=20000)
{
passedTime = 0;
currentTime = millis();
}
makeLines ();

}
}
void makeCircles () {

for (int i = 0; i < 25; i++) {
rotate (rotationCount);
ellipse(i+7, i % width, 100, height/2);
}
}

void makeLines () {
for (int i = 0; i < 25; i++) {
rotate (rotationCount);
rect(i+7, i % width, 100, height/2);
}
}
/*
void generateColor () {

for (g=g; g>minValue; g--)
{
values.push (r,g,b);
}
for (r=r; r>minValue; r--)
{
values.push (r,g,b);
}
for (b=b; b<maxValue; b++)
{
values.push (r,g,b);
}
for (g=g; g<maxValue; g++)
{
values.push (r,g,b);
}
for (r=r; r<maxValue; r++)
{
values.push (r,g,b);
}
for (b=b; b>minValue; b--)
{
values.push (r,g,b);
}


}

*/

编辑--------

JavaScript 模式:

enter image description here

最佳答案

我已经粘贴了一个有效的解决方案。您的代码中有一些错误。

首先,请确保声明您使用的东西。您在代码中使用了values,但划掉了声明。 Javascript 将允许调用 null 对象,这就是为什么您在对象上调用 .push() 并且它正在编译但不起作用。

其次,将颜色保留为 color 对象并使用 ArrayList 来存储它们。它更易于管理,并且允许您在 Java 和 Javascript 版本的 Processing 之间轻松切换(Java 中的数组中不存在 .push() 方法)。

最后,当您通过调用 fill() 查找颜色时,您使用的是 timeIndex,它与颜色数组的长度不同,从而导致异常。我已将查找更改为使用frameCount 和ArrayList 长度的模数,以保持其在颜色中振荡,同时也防止越界错误。

结果看起来非常好。好工作。

int rotationCount = 0;
int translateX ;
int translateY ;
int currentTime = 0;
int circlesOrLines ;
int timeLimit ;
int r;
int g;
int b;
ArrayList values;
int maxValue = 226;
int minValue = 75;
int timeIndex = 0;

void setup () {
size(500, 700);
r = 226;
g = 226;
b = 75;

smooth();
background(0);
rectMode(CENTER);
frameRate (10);
noStroke();
fill(r, g, b, 30);
translateX = width/2;
translateY = height/2;
timeLimit = 10000;
circlesOrLines = 0;
currentTime = millis();


values = new ArrayList();
generateColor ();

}

void draw () {
background(80);

fill( values.get( frameCount % values.size()));
int passedTime = millis() - currentTime;

translate(translateX % width, translateY % height);

translateX += 3 % width;
translateY += 3 % height;

rotationCount += (PI/2008);
if (passedTime < timeLimit) {
makeCircles ();
}
else {
if (passedTime >=20000)
{
passedTime = 0;
currentTime = millis();
}
makeLines ();

}
}
void makeCircles () {

for (int i = 0; i < 25; i++) {
rotate (rotationCount);
ellipse(i+7, i % width, 100, height/2);
}
}

void makeLines () {
for (int i = 0; i < 25; i++) {
rotate (rotationCount);
rect(i+7, i % width, 100, height/2);
}
}


void generateColor ()
{

for (g=g; g>minValue; g--)
{
values.add (color(r,g,b,30));
}
for (r=r; r>minValue; r--)
{
values.add (color(r,g,b,30));
}
for (b=b; b<maxValue; b++)
{
values.add (color(r,g,b,30));
}
for (g=g; g<maxValue; g++)
{
values.add (color(r,g,b,30));
}
for (r=r; r<maxValue; r++)
{
values.add (color(r,g,b,30));
}
for (b=b; b>minValue; b--)
{
values.add (color(r,g,b,30));
}
}

关于java - 如何在processingJS中创建一个空的int数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20113600/

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