如何用processing做出如下圖案?


觀察了一下,沒找到顯著的規律,可以理解為一堆隨機線段。

思路:
1. 將整個畫布(如800*800)劃分成若干小正方形(如40*40個邊長為20的小正方形)
2. 對每個小正方形隨機連接其中一條對角線(左上-右下或者右上-左下)
3. 線的密度受小正方形邊長控制(邊長越小越密集,邊長越大越稀疏)

實現:
1. 設定Square類(包含坐標、邊長以及選取的對角線等屬性和繪製方法)
2. 依次創建新的Square,並調用display方法進行繪製

參考代碼(processing 3.3):

// 分解成40*40個長度為20的正方形
// 在小正方形內隨機畫對角線(左上角到右下角或者右上角到左下角)

int squareNum=40*40; // 共40*40個小正方形
int sideLength=20; // 每個正方形邊長為20

void setup(){
size(800,800);
stroke(0);
noLoop();
}

void draw(){
background(255);
rect(0,0,width-1,height-1);// 外邊框
for(int i=0;i&=0.5);//生成0~1之間的隨機數,大於等於0.5標記為1,其餘標記為0
}

void display(){
stroke(0);
strokeWeight(4);
line(x+abs(int(r)-1)*l,y,x+int(r)*l,y+l);//連接對角線,r=1時連接左上到右下,r=0時連接右上到左下
}

}

結果示意圖:
邊長=20:

邊長=40:

附:邊長=40時的網格圖,便於理解:

供參考!


這個好像就是隨機生成/和,然後用某種字體、在shell里就會這樣。


舉報走起


推薦閱讀:

TAG:編程 | Arduino | Processing編程語言 |