我想在圆柱上打印文字。结果应该看起来像一罐可口可乐。
我尝试过类似于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选项。 我做错了什么?
答案 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}
]
]
}
]