2017-03-20 6 views
0

Processingを使用していて、forループ内のpixelsピクセルのピクセル配列をPGraphicsオブジェクトにコピーしています。行列変換を使用すると、ピクセル[]からのピクセル単位のコピーに影響しますか?もしそうなら、どのように? (Processing/Javaで)

私はいくつかの変換と一緒にpushMatrix()とpopMatrix()を使用することに興味がありますが、translate()、rotate()、scale()関数がどのようにpixels []配列組織されています。

また、私が見つけることができる情報では、マトリックスを押してから描画してから元の状態に戻すと言います。ピクセル単位でピクセルをコピーすると、描画とみなされるのは不思議です。私はimage()が影響を受けていることを知っていますが、他に何がありますか?リストはどこにありますか?マトリックス変換が影響を与えるピクセルの描画と編集の種類は何ですか?あなたはPGraphicsインスタンスに画像をレンダリングする場合

おかげ

答えて

0

は、手動pixels[]配列、ピクセルごとにアクセスする必要はありません。

PGraphicsは、以前の変換(変換/回転/スケール)を考慮に入れることができるimage()を提供しています。ここで

は、基本的な例です:

PImage testImage; 
PGraphics buffer; 

void setup(){ 
    size(400,400); 

    testImage = createImage(100,100,RGB); 
    //make some noise 
    for(int i = 0; i < testImage.pixels.length; i++){ 
    testImage.pixels[i] = color(random(255),random(255),random(255)); 
    } 
    testImage.updatePixels(); 

    //setup PGraphics 
    buffer = createGraphics(width,height); 
    buffer.beginDraw(); 
    //apply localised transformations 
    buffer.pushMatrix(); 
    buffer.translate(width/2, height/2); 
    buffer.rotate(radians(45)); 
    buffer.scale(1.5); 
    //render transformed image 
    buffer.image(testImage,0,0); 
    buffer.popMatrix(); 

    //draw the image with no transformations 
    buffer.image(testImage,0,0); 
    buffer.endDraw(); 
} 
void draw(){ 
    image(buffer,0,0); 
} 
関連する問題