Geometry 处理:如何在三维对象上显示文本

Geometry 处理:如何在三维对象上显示文本,geometry,processing,Geometry,Processing,我是新的处理,目前我想显示一个三维球,并添加一个文本标签到三维球。 我使用的代码如下: //首次加载此草图时调用此函数 无效设置 { //选择草图的大小、宽度和高度 尺寸720546,P3D; //为草图选择背景色 背景0; } //反复调用此函数以在屏幕上绘制内容。 抽真空 { 灯; pushMatrix; 平移500,高度*0.35,0; 填充物236112,20; 仰泳; 球形40; popMatrix; //填充255; 填充255112,20; 文本对齐中心; 文本大小15; 冲程10

我是新的处理,目前我想显示一个三维球,并添加一个文本标签到三维球。 我使用的代码如下:

//首次加载此草图时调用此函数 无效设置 { //选择草图的大小、宽度和高度 尺寸720546,P3D; //为草图选择背景色 背景0; } //反复调用此函数以在屏幕上绘制内容。 抽真空 { 灯; pushMatrix; 平移500,高度*0.35,0; 填充物236112,20; 仰泳; 球形40; popMatrix; //填充255; 填充255112,20; 文本对齐中心; 文本大小15; 冲程10; texthihi,500,高度*0.35; }
事实证明,文本HIHI被球覆盖,但当我使用2D对象时,它显示良好。这里有什么问题吗,有人能告诉我我的代码有什么问题吗?谢谢

请注意,球体的半径为40,这意味着直径为80,并且在同一水平位置绘制文本和球体500

将文本向右移动以避免球体遮挡它:

void setup()
{
  size(720, 546, P3D);
  background(0);
}
void draw()
{
  lights();
  pushMatrix();
    translate(500, height*0.35, 0);
    fill(236, 112, 20);
    noStroke();
    sphere(40);
  popMatrix();

  fill(255, 112, 20);
  textAlign(CENTER);
  textSize(15);
  stroke(10);
  text("hihihihi", 585, height*0.35);//make sure the text isn't occluded by anything else(like a sphere) 
}
如果您想在球体上渲染文本,我建议您尝试和。 下面是一个简单的例子:

PShape sphere;
void setup()
{
  size(720, 546, P3D);
  background(0);

  PGraphics sphereTexture = createGraphics(40,40);
  sphereTexture.beginDraw();
  sphereTexture.background(236, 112, 20);
  sphereTexture.fill(255);
  sphereTexture.text("Hi",20,20);
  sphereTexture.endDraw();

  sphere = createShape(SPHERE, 40);
  sphere.disableStyle();
  noStroke();
  sphere.setTexture(sphereTexture); 
}
void draw()
{
  lights();
  pushMatrix();
  translate(500, height*0.35, 0);
  fill(236, 112, 20);
  noStroke();
  shape(sphere,0,0);
  popMatrix();

  fill(255, 112, 20);
  textAlign(CENTER);
  textSize(15);
  stroke(10);
  text("hihihihi", 585, height*0.35);//make sure the text isn't occluded by anything else(like a sphere) 
}

你在使用OpenGL吗?如果你能发布你的最小化但有效的程序,让人们了解中风、文字和关于问题的建议,这会有所帮助。感谢我使用P3D,设置如下://首次加载此草图时调用此函数无效设置{//选择草图尺寸720、546、P3D的大小、宽度、高度;//为草图背景选择背景色0;//加载字体文件//font=loadFontAndaleMono-36.vlw;}对不起:我确实注意到你下面的“处理”标签。