我有一个平铺模式,我想绕每个元素的轴旋转每个元素。现在,我的整个图案都在旋转-围绕第一个图块的轴向左上方旋转...我如何设置它的旋转影响循环中的每个图块?我尝试了translate()等等,但是逻辑完全让我感到困惑–我的意思是我没有理解…
感谢您的任何帮助或想法!
int horizontal;
int vertical;
void setup() {
size(730, 1080);
}
void draw() {
background(0);
fill(255);
for (vertical = 0; vertical < 5; vertical++) {
for (horizontal = 0; horizontal <4; horizontal++) {
float wave = sin(radians(frameCount));
pushMatrix();
rectMode(CENTER);
rotate(radians(wave*10));
rect(182*horizontal, 216*vertical, 182, 216);
popMatrix();
}
}
}
rotate
定义旋转矩阵,并将当前矩阵乘以旋转矩阵。rotate
因此导致旋转(0,0)。
您必须将矩形围绕(0,0)居中,将其旋转,然后使用以下命令将旋转的矩形移动到所需位置translate
:
translate(182*horizontal + 91, 216*vertical + 108);
rotate(radians(wave*10));
rectMode(CENTER);
rect(0, 0, 182, 216);
完整的代码:
void setup() {
size(730, 1080);
}
void draw() {
background(0);
fill(255);
for (int vertical = 0; vertical < 5; vertical++) {
for (int horizontal = 0; horizontal <4; horizontal++) {
float wave = sin(radians(frameCount));
pushMatrix();
translate(182*horizontal + 91, 216*vertical + 108);
rotate(radians(wave*10));
rectMode(CENTER);
rect(0, 0, 182, 216);
popMatrix();
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句