我正在练习物体,当它们移动时会留下褪色的痕迹效果。目前我正在画布中间顺时针旋转一个矩形,并在画布的每一帧上画一个低不透明度的矩形,产生一个漂亮的褪色痕迹。
问题:当我使用rectMode(CORNER)时,淡入淡出的踪迹只会完全消失。 [我应该提到没有提到rectMode默认为CORNER。]这是不可取的,因为矩形围绕一个角而不是它的中心枢转。
我更喜欢使用rectMode(CENTER),但运动轨迹不会完全淡化此命令。相反,这些小径构成了一个坚固的,完全不透明的颜色的3/4圈。
我试图包含奇数3/4运动轨迹圈的截图,但我被告知我缺乏必要的声誉。
这很奇怪,看起来像是一个小虫 有什么想法吗?
int shapeSize = 150;
float q = 0;
void setup() {
size(500, 500);
smooth();
noStroke();
background(0);
}
void draw() {
noStroke();
fill( 0, 15); //builds up low-opacity layers over object
rect(0, 0, width, height);
//pushMatrix();
rectMode(CENTER); //TOGGLE ON AND OFF TO SEE THE ISSUE
translate(width/2, height/2);
rotate(q);
noStroke();
fill(255,255);
rect(0,0, shapeSize,shapeSize);
q += 0.02;
//popMatrix(); //Tried toggling push and popMatrix -- no luck
}
答案 0 :(得分:1)
我总是犹豫着指责一种语言有错误:)尝试下面的代码,我想你会明白为什么会出现这种情况。 (它与你的相同,只是我改变了半透明矩形的颜色)。如果您想要更多解释,请发表评论,我很乐意帮忙。
int shapeSize = 150;
float q = 0;
void setup() {
size(500, 500);
smooth();
noStroke();
background(0);
}
void draw() {
noStroke();
fill( 100, 15); //builds up low-opacity layers over object
rect(0, 0, width, height);
//pushMatrix();
rectMode(CENTER); //TOGGLE ON AND OFF TO SEE THE ISSUE
translate(width/2, height/2);
rotate(q);
noStroke();
fill(255,255);
rect(0,0, shapeSize,shapeSize);
q += 0.02;
//popMatrix(); //Tried toggling push and popMatrix -- no luck
}