Processing 寻找一种在处理中获得±1序列的优雅方法

Processing 寻找一种在处理中获得±1序列的优雅方法,processing,Processing,我需要一个替代序列,比如1,-1,1,-1。。。asf。首先我使用了if语句,但它很愚蠢。然后我尝试了一些类似的方法: int n = 1 - ((frameCount % 2) * 2); int n=1; ... 做{ n=0+n*-1; }白扁豆 没关系,但我必须在一个迭代到另一个迭代中存储n值。这不太漂亮。如何从控制变量(如frameCount)计算该序列 对不起,我不仅在学习代码,还学习英语。它的可读性不太好,但如果你想找一些纯粹优雅的东西,我想你可以做如下事情: int n = 1

我需要一个替代序列,比如1,-1,1,-1。。。asf。首先我使用了if语句,但它很愚蠢。然后我尝试了一些类似的方法:

int n = 1 - ((frameCount % 2) * 2);
int n=1; ... 做{ n=0+n*-1; }白扁豆 没关系,但我必须在一个迭代到另一个迭代中存储n值。这不太漂亮。如何从控制变量(如frameCount)计算该序列


对不起,我不仅在学习代码,还学习英语。

它的可读性不太好,但如果你想找一些纯粹优雅的东西,我想你可以做如下事情:

int n = 1 - ((frameCount % 2) * 2);

如果你在偶数帧上,你将减去1-0,如果你在奇数帧上,你将减去1-2。

这不是很可读,但如果你在寻找一些纯粹优雅的东西,我想你可以做如下事情:

int n = 1 - ((frameCount % 2) * 2);

如果你在偶数帧上,你将减去1-0,如果你在奇数帧上,你将减去1-2。

为了可读性,我建议:

int n=frameCount&1==1?1 : -1;


请注意,x&1会像x%2一样从x中提取最低位。

为了可读性,我建议:

int n=frameCount&1==1?1 : -1;


请注意,x&1从x中提取最低位,就像x%2一样。

为什么不这样做呢

float n = 1 ;

void setup() {
....
}

void draw() { 
....
n =-n;
....
} 

你为什么不这样做呢

float n = 1 ;

void setup() {
....
}

void draw() { 
....
n =-n;
....
} 

我最近看到了另一种使用XOR魔术创建这样一个序列的有趣方法

int n = -1, t = 1 ^ -1;
...
do{
   n ^= t;
}while(blabla);

在第5页中找到。

我最近看到了另一种使用XOR magic创建这样一个序列的有趣方法

int n = -1, t = 1 ^ -1;
...
do{
   n ^= t;
}while(blabla);
可在第5页找到。

一种可能性是

((framecount & 1)<<1) -1;
当frameCount为奇数时,frameCount ^1将等于frameCount-1,结果将为1。如果frameCount为偶数,frameCount ^1将等于frameCount+1,给出-1。

一种可能性是

((framecount & 1)<<1) -1;

当frameCount为奇数时,frameCount ^1将等于frameCount-1,结果将为1。如果frameCount为偶数,frameCount ^1将等于frameCount+1,给出-1。

我已经有一段时间没有研究处理了,但我要试一试。我猜每一帧的帧数都会增加?如果是这样,你可以说n=frameCount%2==0?1:-1即,当帧数为偶数时,n为1;当帧数为奇数时,n为-1。我已经有一段时间没有研究处理了,但我会尝试一下。我猜每一帧的帧数都会增加?如果是这样,你可以说n=frameCount%2==0?1:-1即,当帧数为偶数时,n为1;当frameCount为奇数时,n为-1。还要注意的是,一旦编译器点击它,jffrynpmr的解决方案可能会更快地用于机器执行,因为它没有分支和简单的操作。还要注意的是,一旦编译器点击它,jffrynpmr的解决方案可能会更快地用于机器执行,因为它没有分支和简单的操作。因为您使用的是全局状态变量,应该尽可能避免使用全局状态变量。改为将状态作为引用或指针传递。因为您使用的是全局状态变量,应尽量避免使用全局状态变量。改为将状态作为引用或指针传递。