0
我想在處理中繪製圓,而不是通過繪製特定顏色的圓本身,而是通過反轉每個圓佔用的每個像素。以下是影響我要去爲:通過在處理中反轉顏色繪製形狀
除了不斷的像素值的矩陣的軌道,是有什麼辦法可以有效地實現在處理這些目標,希望能與內置的功能?
我想在處理中繪製圓,而不是通過繪製特定顏色的圓本身,而是通過反轉每個圓佔用的每個像素。以下是影響我要去爲:通過在處理中反轉顏色繪製形狀
除了不斷的像素值的矩陣的軌道,是有什麼辦法可以有效地實現在處理這些目標,希望能與內置的功能?
您應該能夠通過設置blendMode()到DIFFERENCE
輕鬆地做到這一點:
void setup(){
size(400,400);
background(0);
noStroke();
//change blend mode to difference
blendMode(DIFFERENCE);
//draw circles
for(int i = 0 ; i < 10; i++){
float diameter = random(50,200);
ellipse(random(width * .35,width * .65),random(height * .2,height * .8),diameter,diameter);
}
}
//the code bellow is just to redraw on click
void draw(){}
void mouseReleased(){
setup();
}
這裏有一個預覽:
實際上你可以運行一個快速演示波紋管(點擊重繪):
function setup(){
createCanvas(400,400);
background(0);
noStroke();
//change blend mode to difference
blendMode(DIFFERENCE);
//draw circles
for(var i = 0 ; i < 10; i++){
var diameter = random(50,200);
ellipse(random(width * .35,width * .65),random(height * .2,height * .8),diameter,diameter);
}
}
//the code bellow is just to redraw on click
function draw(){}
function mouseReleased(){
setup();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.4/p5.min.js"></script>