2016-10-25 28 views
0

特定の色の円を描画するのではなく、各円が占める各ピクセルを反転することで、円で円を描きたいと思います。以下は、私が行くよ効果である:ピクセル値のマトリックスを追跡するほか処理で色を反転して図形を描く

circles drawn by described inversion method

、効率的にうまくいけば、組み込み機能と、処理中にこれらの目的を達成するための方法はありますか?

答えて

1

あなたは簡単に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(); 
} 

はプレビューです:

circles with difference blend mode

は、あなたが実際に迅速なデモ怒鳴るを実行することができます(をクリックしてください再描画):

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>

関連する問題