当前位置: 首页 > 知识库问答 >
问题:

处理中的多个草图窗口

皇甫宇定
2023-03-14

我目前正在研究一种数据可视化技术,它从电影中获取信息,实时播放并同时创建。为此,我想有两个独立的草图窗口。一个窗口应显示实时播放的电影,另一个窗口应显示正在进行的可视化。

我似乎不知道如何轻松地添加另一个草图窗口,并尝试了一些在处理3中不再工作的示例。

然后我偶然发现了这个例子:https://gist.github.com/atduskgreg/666e46c8408e2a33b09a

尽管我可以让它一次显示两个草图窗口,但我显然不能在另一个窗口上使用来自一个窗口的数据

还有别的方法吗?

非常感谢。

共有1个答案

越英韶
2023-03-14

没有什么可以阻止您在PWindow类(创建第二个窗口)中声明一个函数,该类接受可以在内部使用的参数,并从另一个草图调用它。

因此,您可以将表单中的数据作为函数参数传递到第二个窗口。

这个小例子通过一个函数(这里称为evokedFrom主)将相对的mousePmed位置从第一个窗口传递到第二个窗口,并将其存储在一个ArrayList中,该函数将它们绘制在第二个窗口中:

PWindow win;

public void settings() {
  size(320, 240);
}

void setup() { 
  win = new PWindow();
}

void draw() {
  background(255, 0, 0);
  text("Click in this window to draw at a relative position in the other window", 10, 10, this.width - 20, 100);
}

void mousePressed() {
  println("mousePressed in primary window");
  float relPosX = map(mouseX, 0, this.width, 0, 100);
  float relPosY = map(mouseY, 0, this.height, 0, 100);
  win.evokedFromPrimary(relPosX, relPosY);
}  

class PWindow extends PApplet {
  ArrayList<PVector> vectors = new ArrayList<PVector>();
  PWindow() {
    super();
    PApplet.runSketch(new String[] {this.getClass().getSimpleName()}, this);
  }

  void evokedFromPrimary(float relPosX, float relPosY) {
    println("evoked from primary");

    float xPos = map(relPosX, 0, 100, 0, this.width);
    float yPos = map(relPosY, 0, 100, 0, this.height);

    vectors.add(new PVector(xPos, yPos));
  }
  void settings() {
    size(500, 200);
  }

  void setup() {
    background(150);
  }

  void draw() {
    background(150);
    //store the vector size before using to avoid ConcurrentModificationException
    int listLength = vectors.size();
    for(int i = 0; i < listLength; i++) {
      PVector v = vectors.get(i);
      ellipse(v.x, v.y, random(50), random(50));
    }

  }

  void mousePressed() {
    println("mousePressed in secondary window");
  }
}

这里的pWindows代码是相同的。pda文件。

 类似资料:
  • 问题内容: 如何在“处理”中创建单个草图的多个窗口? 实际上我想在一个窗口中检测并跟踪特定颜色(通过网络摄像头),然后将检测到的坐标显示为另一个窗口中的点,直到现在我仍可以在检测到该颜色的同一个窗口中显示这些点。我想将其拆分为两个不同的窗口。 问题答案: 您需要创建一个新框架和一个新的PApplet …这是一个示例草图:

  • 如何在加工过程中创建单个草图的多个窗口? 实际上,我想在一个窗口中检测并跟踪特定的颜色(通过网络摄像头),并在另一个窗口中将检测到的坐标显示为一个点。到目前为止,我能够在同一个窗口中显示检测到它的点。但我想把它分成两个不同的窗口。

  • 问题内容: 我想通过在“处理”中仅使用一个草图来创建两个窗口。 我想做的是,如果我在一个窗口中单击一个按钮,则某些图像会出现在另一个窗口中。 我搜索了Google并找到了一些示例。实际上,我在此“堆栈溢出网络”中发现了相同的问题。这里是链接。 在处理中 http://forum.processing.org/one/topic/multiple- windows-2-4-2011.html中 创建

  • 我试着把加工草图与多个。pde文件(标签或类)在我的网站上,但它似乎不起作用。你应该能够点击,使球出现在屏幕上反弹。然而,似乎并没有第二次出现。pde文件,因此,草图不能完全工作。 http://willhay.io/processing/一个普通的单文件草图效果很好,我认为这与这个草图有一个球有关。应该出现的球的pde类。

  • 我想通过在处理中使用一个草图来创建两个窗口。 我想做的是,如果我在一个窗口中单击一个按钮,那么一些图像就会出现在另一个窗口中。 我搜索了谷歌,找到了一些例子。实际上,我在这个“堆栈溢出网络”中发现了相同的问题。以下是链接。 在处理中为单个草图创建多个窗口http://forum.processing.org/one/topic/multiple-windows-2-4-2011.html 这是第二

  • 这是如何使用公共类frome的一个后续步骤。其他处理选项卡中的java文件?;使用来自的Usage类中的示例。java文件-有完整的文档吗?-处理2。x和3。x论坛,我有这个: /tmp/Sketch/Foo.java 这个例子运行得很好,但是如果我取消注释import peasy。组织 行,则编译失败: 当然,我确实在下安装了PeasyCam,如果我导入peasy.*它工作得很好 来自草图。 我