Processing 如何在循环中偏移正方形?

Processing 如何在循环中偏移正方形?,processing,Processing,我正在创建一个咖啡馆墙壁错觉草图,需要帮助想出一种方法来抵消处理过程中的棋盘效应。上一行下方的行与其上方的行不能太近。基本上我也需要它,看起来每行向下偏移半个瓷砖,但起点是随机的 void setup(){ 大小(500500); 冲程重量(3); 中风(127); tileSize=高度/行数; drawTiles(); } 作废提款(){ } void drawTiles(){ 对于(int i=0;i),与其计算如何移动矩形的坐标,不如使用以下命令移动坐标系: final int rect

我正在创建一个咖啡馆墙壁错觉草图,需要帮助想出一种方法来抵消处理过程中的棋盘效应。上一行下方的行与其上方的行不能太近。基本上我也需要它,看起来每行向下偏移半个瓷砖,但起点是随机的

void setup(){
大小(500500);
冲程重量(3);
中风(127);
tileSize=高度/行数;
drawTiles();
}
作废提款(){
}
void drawTiles(){

对于(int i=0;i),与其计算如何移动矩形的坐标,不如使用以下命令移动坐标系:

final int rectSize=。。。
无效设置(){
...
noLoop();
冲程重量(4);
中风(127);
}
在draw中,我们不是计算每个矩形的x/y坐标,而是从(0,0)开始“绘制一行瓷砖”,然后更改(0,0)意思是通过使用
translate
,将其向下移动一行,然后根据所处的行向右或向左移动一点;我们希望将第1行和第2行向右移动,然后将第3行和第4行向左移动,然后将第5行和第6行向右移动,等等。因此,如果(行数/2)舍入为偶数,我们希望将其向左移动,如果舍入为奇数,则向右移动

void draw(){
int步数=4;
对于(int row=0;row<1+高度/rectSize;row++){
drawTileRow();
int step=矩形尺寸/步数;
如果((第/2行)%2==0){
步骤=-步骤;
}
平移(步长、矩形尺寸);
}
}
然后,您可以在drawTileRow函数中编写更简单的代码,只绘制从(0,0)开始到(宽度,0)结束的矩形,尽管您确实希望从
-rectSize
开始,到
width+rectSize
结束,以补偿整个全局坐标系偏移的事实:

void drawTileRow(){
布尔负=假;

对于(int x=-rectSize;xIs)这是否真的是Java代码?@rabbi76(编辑器)可能错误地添加了标记。很抱歉,这完全不清楚。我不知道你在问什么。请分别阅读并尝试改进你的问题。@Marcono1234这是Java请阅读“处理”的标记信息基于java,是一种灵活的软件速写簿,是一种学习如何在视觉艺术环境下编写代码的语言。@Rabbid76抱歉,这是我第一次使用此网站。我不知道如何发布代码输出的图片。如果有帮助,我可以尝试在代码中添加一些注释。总的来说,您已经拥有的是还不错,你可以玩其他随机函数,比如或