2

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

我尝试了类似于mathematica文档中的示例: http ://reference.wolfram.com/mathematica/ref/Texture.html > Scope > Texture Specification > Text Example

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

}]

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

4

1 回答 1

4

你没有做错任何事,它只是不适用于内置原语 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}
    ]
   ]
  }
 ]

在此处输入图像描述

于 2012-05-03T18:16:32.777 回答