2016-02-25 3 views
1

Я работаю над визуализацией проекции 7680x1080. visualizationОбработка: Split screen = 1 холст?

Производственная компания хочет, чтобы я поставил это как 3840x2160. output

Как бы это сделать в обработке, чтобы обработка все еще рассматривала это как один большой холст, и я могу иметь бесшовную графику по всей ширине?

Спасибо! Serge

ответ

0

в обработке рисунка делается в PGraphics и PImage объекта (подробнее здесь: https://processing.org/reference/PImage.html)

Вы можете прочитать пиксели вы положили в вашем PGraphics холст и разделить их на 2 PImage объекты

Пример:

int w = 500; 
int h = 500; 
PImage topCanvas; 
PImage bottomCanvas; 
PGraphics mainCanvas; 

void setup() { 
    background(255); 
    size(w, h, P3D); 
    mainCanvas = createGraphics(w, h, P2D); 

    mainCanvas.beginDraw(); 
    for(int i=0; i<w; i++){ 
    for(int j=0; j<h; j++){ 
     mainCanvas.stroke(random(255), random(255), random(255), random(255)); 
     mainCanvas.point(i, j); 
    } 
    } 
    mainCanvas.endDraw(); 
} 

void draw(){ 

    topCanvas = mainCanvas.get(0,0,w, h/2); 
    bottomCanvas = mainCanvas.get(0,h/2,w, h/2); 

    image(topCanvas, 0, 0); 
    image(bottomCanvas, 0, h/2); 

} 
+0

Я думаю, что это именно то, что я ищу! Поиграю с этим немного. Благодаря! – sjespers

0

Обработка уже есть одно большое полотно. Вы контролируете то, что рисуете, и где вы его рисуете.

Вы можете просто следить за своим размером экрана и местоположение, а затем разделить чертеж в функции:

float viewportTwoX; 
float viewportTwoY; 

float viewportWidth; 
float viewportHeight; 

void setup() { 
    size(768, 108); 
    viewportTwoX = width/2; 
    viewportTwoY = 0; 
    viewportWidth = width/2; 
    viewportHeight = height; 
} 

void draw() { 
    background(0); 
    drawViewportOne(); 
    drawViewportTwo(); 
} 

void drawViewportOne() { 
    fill(64); 
    noStroke(); 
    rect(0, 0, viewportWidth, viewportHeight); 
    fill(255); 
    text("viewport 1", viewportWidth/2, viewportHeight/2); 
} 

void drawViewportTwo() { 
    translate(viewportTwoX, viewportTwoY); 

    fill(128); 
    noStroke(); 
    rect(0, 0, viewportWidth, viewportHeight); 
    fill(255); 
    text("viewport 2", viewportWidth/2, viewportHeight/2); 
} 

Затем, если вы хотите изменить местоположение второго просмотра, вы просто должны изменить значения этих переменных:

void setup() { 
    size(384, 216); 
    viewportTwoX = 0; 
    viewportTwoY = height/2; 
    viewportWidth = width; 
    viewportHeight = height/2; 
}