2016-05-18 14 views
0

サイフォンからMadmapperにスケッチを送信する際に問題があります。 通常の「フレーム送信」スケッチが機能しますが、スケッチにパラメータを組み込もうとすると、視覚化は表示されません。サイフォンを使用してMADMAPPERにフレームを送信

私のコードを見て、私は私が間違って何をやっているお聞かせください:

//Final Project 
import codeanticode.syphon.*; 


float rotation=0.1; 
int num = 100, frms = 320; 
float theta, time; 
long rs; 
PGraphics canvas; 
SyphonServer server; 

//long: Use this datatype when you need a number to have a greater magnitude than can be 
//stored within an int. 

void setup() { 
    size(800, 800, P2D); 
    canvas = createGraphics(800, 800, P2D); 
    loop(); 
    server = new SyphonServer(this, "sublime"); 
}; 


void draw() { 

    background(0); 

canvas.beginDraw(); 
canvas.smooth(); 
    noStroke(); 
    fill(255, 255, 255, 20); 
    rect(mouseX, mouseY, 50, 50); 

    time = (frameCount % frms)/float(frms); 
    paintQuads(); 
    theta += 2/TWO_PI/frms; 
} 



void paintQuads() { 
    for (int i=0; i<num; i++) { 
    fill(0); 
    stroke(255); 
    float r = random(-.5, .5); 
    float sz = random(5, 15); 
    resetMatrix(); // Replaces the current matrix with the identity matrix. 
    // This effectively clears all transformation functions set before it. 



    //multiply the quads 

    //Translate 
    //Specifies an amount to displace objects within the display window. 
    //The x parameter specifies left/right translation, the y parameter specifies up/down 
    //translation, and the z parameter specifies translations toward/away from the screen. 
    //Using this function with the z parameter requires using P3D as a parameter in 
    //combination with size as shown in the above example. 


    translate(random(width), random(height)); 
    rotate(r); 
    rotate(rotation); 

    //images 

    noStroke(); 

    fill(255, 0, 0, 70); 
    quad(38, 31, 86, 20, 69, 63, 30, 76); 

    fill(255, 210, 0, 10); 
    quad(width-9, height-9, 86, 20, 69, 63, 30, 76); 

    fill(255, 0, 0, 30); 
    ellipse(36, 36, 16, 16); 

    fill(50, 46, 100, 20); 
    quad(46, 20, 14, 14, 46, 20, 14, 14); 

    fill(50, 46, 100, 75); 
    quad(50, 0, 12, 12, 50, 0, 12, 12); 

    rotation=rotation+0.5; 
    } 
    canvas.endDraw(); 
    image(canvas, 0, 0); 
    //send canvas to Syphon 
    server.sendImage(canvas); 
} 

ありがとうございました! -k

+0

ビジュアライゼーションが表示されないと言ったらどういう意味ですか?それはどこに表示されませんか?あなたは例外を取るか、トレースを積み重ねますか? –

+0

こんにちはKevin、私が意味するのは、視覚化が狂ったマッパーで見ることができないということです。スケッチは機能しますが、私が望む領域にビジュアルを送ることはできないようです。 Madmapperの画像は見えません。 – krizz

答えて

1

PGraphicsインスタンスを正しく使用していないようです。いくつかの呼び出しで使用されますが、メインスケッチに描画されるものもあれば、Siphonに送信するキャンバスPGraphicsでは描画されないものもあります。

一つクイックフィックスではなくserver.sendImage();

server.sendScreen();を呼び出すためにどのような処理で参照されることは、あなたがサイフォンを経てMadMapperで見るものである。この方法です: syphon mad mapper preview

また、あなたのPGraphicsを修正することができます呼び出します。

//Final Project 
import codeanticode.syphon.*; 


float rotation=0.1; 
int num = 100, frms = 320; 
float theta, time; 
long rs; 
PGraphics canvas; 
SyphonServer server; 

//long: Use this datatype when you need a number to have a greater magnitude than can be 
//stored within an int. 

void setup() { 
    size(800, 800, P2D); 
    canvas = createGraphics(800, 800, P2D); 
    loop(); 
    server = new SyphonServer(this, "sublime"); 
}; 


void draw() { 

    background(0); 

    canvas.beginDraw(); 
    canvas.smooth(); 
    canvas.background(0); 
    noStroke(); 
    fill(255, 255, 255, 20); 
    rect(mouseX, mouseY, 50, 50); 

    time = (frameCount % frms)/float(frms); 
    paintQuads(canvas); 
    theta += 2/TWO_PI/frms; 

    canvas.endDraw(); 
    image(canvas,0,0); 
    server.sendImage(canvas); 
} 



void paintQuads(PGraphics g) { 
    for (int i=0; i<num; i++) { 
    g.fill(0); 
    g.stroke(255); 
    float r = random(-.5, .5); 
    float sz = random(5, 15); 
    g.resetMatrix(); // Replaces the current matrix with the identity matrix. 
    // This effectively clears all transformation functions set before it. 



    //multiply the quads 

    //Translate 
    //Specifies an amount to displace objects within the display window. 
    //The x parameter specifies left/right translation, the y parameter specifies up/down 
    //translation, and the z parameter specifies translations toward/away from the screen. 
    //Using this function with the z parameter requires using P3D as a parameter in 
    //combination with size as shown in the above example. 


    g.translate(random(width), random(height)); 
    g.rotate(r); 
    g.rotate(rotation); 

    //images 

    g.noStroke(); 

    g.fill(255, 0, 0, 70); 
    g.quad(38, 31, 86, 20, 69, 63, 30, 76); 

    g.fill(255, 210, 0, 10); 
    g.quad(width-9, height-9, 86, 20, 69, 63, 30, 76); 

    g.fill(255, 0, 0, 30); 
    g.ellipse(36, 36, 16, 16); 

    g.fill(50, 46, 100, 20); 
    g.quad(46, 20, 14, 14, 46, 20, 14, 14); 

    g.fill(50, 46, 100, 75); 
    g.quad(50, 0, 12, 12, 50, 0, 12, 12); 

    rotation=rotation+0.5; 
    } 

    // image(canvas, 0, 0); 
    //send canvas to Syphon 

    // server.sendScreen(); 
} 

PGraphicsが今のところ混乱している場合は、すべてスキップして画面を送信してください:

//Final Project 
import codeanticode.syphon.*; 


float rotation=0.1; 
int num = 100, frms = 320; 
float theta, time; 
long rs; 

SyphonServer server; 

//long: Use this datatype when you need a number to have a greater magnitude than can be 
//stored within an int. 

void setup() { 
    size(800, 800, P2D); 
    smooth(); 

    server = new SyphonServer(this, "sublime"); 
}; 


void draw() { 

    background(0); 

    noStroke(); 
    fill(255, 255, 255, 20); 
    rect(mouseX, mouseY, 50, 50); 

    time = (frameCount % frms)/float(frms); 
    paintQuads(); 
    theta += 2/TWO_PI/frms; 

    server.sendScreen(); 
} 



void paintQuads() { 
    for (int i=0; i<num; i++) { 
    fill(0); 
    stroke(255); 
    float r = random(-.5, .5); 
    float sz = random(5, 15); 
    resetMatrix(); // Replaces the current matrix with the identity matrix. 
    // This effectively clears all transformation functions set before it. 



    //multiply the quads 

    //Translate 
    //Specifies an amount to displace objects within the display window. 
    //The x parameter specifies left/right translation, the y parameter specifies up/down 
    //translation, and the z parameter specifies translations toward/away from the screen. 
    //Using this function with the z parameter requires using P3D as a parameter in 
    //combination with size as shown in the above example. 


    translate(random(width), random(height)); 
    rotate(r); 
    rotate(rotation); 

    //images 

    noStroke(); 

    fill(255, 0, 0, 70); 
    quad(38, 31, 86, 20, 69, 63, 30, 76); 

    fill(255, 210, 0, 10); 
    quad(width-9, height-9, 86, 20, 69, 63, 30, 76); 

    fill(255, 0, 0, 30); 
    ellipse(36, 36, 16, 16); 

    fill(50, 46, 100, 20); 
    quad(46, 20, 14, 14, 46, 20, 14, 14); 

    fill(50, 46, 100, 75); 
    quad(50, 0, 12, 12, 50, 0, 12, 12); 

    rotation=rotation+0.5; 
    } 
} 
関連する問題