Mathematica:在3D图形上打印文本

时间:2012-05-03 17:41:25

标签: wolfram-mathematica textures graphics3d

我想在圆柱上打印文字。结果应该看起来像一罐可口可乐。

我尝试过类似于mathematica文档中的示例: http://reference.wolfram.com/mathematica/ref/Texture.html&gt;范围&gt; <纹理规格>文字示例

text = Style["Coca Cola", 128];
Graphics3D[{
   Texture[text],
   Red, Cylinder[{{0, 0, 0}, {0, 0, h}}, radius[h], VertexTextureCoordinates -> {...}],

}]

但是Cylinder无法识别VertexTextureCoordinates选项。 我做错了什么?

1 个答案:

答案 0 :(得分:3)

你没有做错任何事情,它只是不适用于内置的原语afaik。但你可以肯定编写自己的Cylinder函数,它是从多边形构建的,你可以应用任何你喜欢的纹理:

text = Style["Cook a Cola", 128, White, Background -> Red];
Graphics3D[
 {Texture[text],
  Red, EdgeForm[],
  With[{dphi = Pi/35},
   Table[
    Polygon[{{Cos[phi], Sin[phi], 0}, {Cos[phi + dphi], 
       Sin[phi + dphi], 0}, {Cos[phi + dphi], Sin[phi + dphi], 
       1}, {Cos[phi], Sin[phi], 1}}, 
     VertexTextureCoordinates -> {{phi/Pi, 0}, {(phi + dphi)/Pi, 
        0}, {(phi + dphi)/Pi, 1}
       , {phi/Pi, 1}}],
    {phi, 0, 2 Pi - dphi, dphi}
    ]
   ]
  }
 ]

enter image description here