2017-03-20 10 views
0

Processing을 사용 중이고 픽셀 배열을 픽셀 단위로 for 루프에서 PGraphics 객체로 복사 중입니다.행렬 변환을 사용하면 픽셀 []에서 픽셀 단위로 복사하는 데 영향을 줍니까? 그렇다면 어떻게? (Processing/Java에서)

일부 변환과 함께 pushMatrix() 및 popMatrix()를 사용하고 싶지만 translate(), rotate() 및 scale() 함수가 pixels [] 배열에 미치는 영향에 대한 정보를 찾을 수 없습니다. 조직됩니다.

또한 찾을 수있는 정보에서 행렬을 누른 다음 그리기를 수행 한 다음 행렬을 원래 상태로 되돌립니다. 픽셀 단위로 픽셀을 복사하는 것이 드로잉으로 간주 될지 궁금합니다. 이미지()가 영향을 받는다는 것을 알고 있지만 그 밖의 무엇입니까? 목록을 어디에서 찾을 수 있습니까? 행렬 변환이 영향을 미치는 픽셀 그리기 및 편집의 모든 유형은 무엇입니까?

감사

답변

0

당신이 PGraphics 인스턴스에 이미지를 렌더링 할 경우, 수동으로 픽셀에 의해 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); 
} 
: 여기

은 기본 예제