【问题标题】:Using Syphon Send Frames for MADMAPPER为 MADMAPPER 使用虹吸发送帧
【发布时间】:2016-05-18 18:34:25
【问题描述】:

我无法通过 Siphon 向 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

【问题讨论】:

  • 你说你的可视化没有显示到底是什么意思?哪里不显示?你有任何异常或堆栈跟踪吗?
  • 嗨,Kevin,我的意思是,在 mad mapper 中看不到可视化。草图有效,但我似乎无法将视觉效果发送到我想要的区域。我在 Madmapper 中看不到图像。

标签: processing syphon


【解决方案1】:

您似乎没有正确使用 PGraphics 实例:一些调用使用它,一些绘制到主草图中,但不是您发送给 Syphon 的画布 PGraphics。

一种快速解决方法是调用server.sendScreen(); 而不是server.sendImage();

这样,在 Processing 中看到的就是您通过 Syphon 在 MadMapper 中看到的:

您也可以修复您的 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;
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多