2017-02-06 3 views
1

私はディスプレイに2つのレイヤーを含むコードを持っています。バックグラウンドピクセルの外観のために前面レイヤーのいくつかのピクセルを無色にする必要があります。私はピクセルを見えないようにする方法を見つけることができませんでした。この点については、フロントレイヤをシェイプで作成しようとしました。このソリューションの主な問題は、それが非常に遅くてCPUが浪費していることです。私のコードは次のようにあります。いくつかのピクセルを無色にする方法

import processing.video.*; 
import SimpleOpenNI.*; 
int[] userMap; 
PShape Stencil,pix; 
SimpleOpenNI kinect; 
void setup(){ 
    size(640,480,P2D); 
kinect = new SimpleOpenNI(this); 
kinect.enableDepth(); 
    kinect.enableUser(); 
    Stencil=createShape(GROUP); 
    } 


    void draw(){ 
    background(255); 
    loadPixels(); 
    kinect.update(); 
    userMap =null; 
    userMap = kinect.userMap(); 
for (int y=0; y<480; y++) { 
     for (int x=0; x<640; x++) { 
     int index = x + y * 640; 
     if (userMap[index] == 0) { 
      pix = createShape(ELLIPSE, x, y,1,1); 
    color col=color(0,0,255); 
    pix.setFill(col); 
    pix.setStroke(false); 
Stencil.addChild(pix); 
     } 
     } 
    } 

    shape(Stencil); 
} 

あなたは私を非表示にしたり、一部の画素を非表示にする助けてくださいますか?

答えて

2

アルファ値で色を付けます。任意のカラー関数に4番目のパラメータを追加するだけです:

color(0, 0, 0, 0); //transparent 
color(0, 0, 0, 128); //half transparent 
color(0, 0, 0, 255); //opaque (default) 
関連する問題