Text 如何在处理P3D模式下绘制2D字体?

Text 如何在处理P3D模式下绘制2D字体?,text,fonts,3d,processing,Text,Fonts,3d,Processing,我正在用三维空间中的点阵列(P3D)绘制草图。我想通过将文本绘制成“屏幕上的”/2D,只使用“X,Y”参数,向其添加一个界面 当我尝试添加“文本(“!@#$%”,width/2,height/2);”时,它在3D空间中渲染 可能吗?我尝试了“文本模式(屏幕)但是processing 2已经不存在了。想到的一个解决方法是创建一个与草图具有相同宽度/高度的2D PGraphic,给它一个透明的背景,在需要的地方绘制文本,然后像复制图像源数据一样将PGraphic绘制到真实草图上。这里是w我想是在处理

我正在用三维空间中的点阵列(P3D)绘制草图。我想通过将文本绘制成“屏幕上的”/2D,只使用“X,Y”参数,向其添加一个界面

当我尝试添加“文本(“!@#$%”,width/2,height/2);”时,它在3D空间中渲染


可能吗?我尝试了“文本模式(屏幕)但是processing 2已经不存在了。

想到的一个解决方法是创建一个与草图具有相同宽度/高度的2D PGraphic,给它一个透明的背景,在需要的地方绘制文本,然后像复制图像源数据一样将PGraphic绘制到真实草图上。

这里是w我想是在处理论坛上找到的

您可以使用:

  • 用于3D内容的PMatrix3D
  • 用普通的老方法编写2D代码
我希望有帮助

    PMatrix3D baseMat;
    float alpha =0;

    void setup() {
      size(400, 400, P3D); 

      // Remember the start model view matrix values
      baseMat = getMatrix(baseMat);
    }

    void draw() {
      background(40);

      pushMatrix();
      camera(0, 0, 400, 0, 0, 0, 0, 1, 0);
      directionalLight(255, 255, 255, -100, 150, -100);
      ambientLight(40, 40, 40);

      // 3D drawing stuff here
      rotateY(alpha);
      box(100);
      alpha += 0.05;
      popMatrix();

      // Restore the base matrix and lighting ready for 2D
      this.setMatrix(baseMat);
      ambientLight(255, 255, 255);

      // draw 2D stuff here
      rect(10, 10, 50, 10);
      textSize(25);
      text("voila", mouseX, mouseY);
    }

“还有吗?“Processing 2已经有好几年的历史了,Processing 3目前正在公测中,准备发布。。。Processing 1.x API已经很久没有生效了=)哈哈,我刚回到它,我安装的还是1.x。不过,我会看一下Processing3,看看它是否有任何解决方案。如果你在提问的同时发布一条消息,你的运气会更好。这可能只是一个简单的草图,显示一个3D点和你试图显示的文本,所以我们可以在我们自己的机器上运行它。这是一个很好的解决方法,但我需要它是dinamic:((请注意:需要显示一些变量,等等)为什么这不起作用呢?您可以全局创建PGraphic缓冲区,比如说
PGraphic buffer
,然后在设置中通过
createGraphic
以相同的尺寸创建它,然后在绘制过程中,您可以简单地更新缓冲区、作为图像绘制、下一帧更新缓冲区、作为图像绘制,只要草图运行就可以重复