java - 在处理 3.x 时同时运行 oscp5 库和 P3D 渲染器时出现问题

标签 java processing visualization osc oscp5

我尝试映射来自外部设备的数据来绘制图案。但是 oscP5 库和 P3D 渲染器无法一起处理 3.3.7 和 3.4,但它们可以单独工作。它们可以在处理 2.2.1 中工作,但 2.2.1 不支持声音库。有谁知道怎么解决吗?

import oscP5.*;
OscP5 oscP5;

float value;

void setup(){
size(400, 400, P3D);
rectMode(CENTER);
oscP5 = new OscP5(this, 60000);
}

void oscEvent(OscMessage theOscMessage){
  if (theOscMessage.checkAddrPattern("/ATT")){
    value = theOscMessage.get(0).floatValue();
  }
}

void draw(){
  background(0);
  noStroke();
  fill(255);
  float r = second()/10;
  rotateZ(r);
  rect(width/2, height/2, value, value);
}

The error when oscP5 and P3D work together

最佳答案

我解决了这个问题。 在我的原始代码中,setup()中有一个frameRate初始化(如下所示的最小示例),我没有意识到正是它导致了问题(因为frameRate初始化分别与oscP5或P3D一起使用时不会导致错误)所以我没有把它写在我的问题中。 现在我删除了frameRate初始化行(frameRate(30))然后oscP5和P3D终于可以一起工作了(虽然我仍然很困惑,但它不影响我当前的工作)。

import oscP5.*;
OscP5 oscP5;

float value;

void setup(){
size(400, 400, P3D);
// the following line causes the error when oscP5 and P3D attempt to work together,
// but the code works when there is either oscP5 and P3D, oscP5 and frameRate or P3D and frameRate.
frameRate(30);
rectMode(CENTER);
oscP5 = new OscP5(this, 60000);
}

void oscEvent(OscMessage theOscMessage){
  if (theOscMessage.checkAddrPattern("/ATT")){
  value = theOscMessage.get(0).floatValue();
  }
}

void draw(){
  background(0);
  noStroke();
  fill(255);
  float r = second()/10;
  rotateZ(r);
  rect(width/2, height/2, value, value);
}

希望我解释清楚。 :)

关于java - 在处理 3.x 时同时运行 oscp5 库和 P3D 渲染器时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53451383/

相关文章:

java - 使用 Async HTTP Client netty 客户端会在高负载下爆炸?

vector - 处理 2 - 找不到名为向量的类或类型

java - 如何操作BufferedImage

java - 为什么输出总是收敛到0.5?

c# - GraphViz 和 ASP.NET

R中绘图包之间的关系

java - 检查不同类的两个对象

java - 实现什么都不做的接口(interface)方法

matlab - 围绕具有相同值的垂直像素组绘制矩形

java - 表单验证失败时填充模型的最佳方法?