Wolfram mathematica 对球体基本体进行纹理处理

Wolfram mathematica 对球体基本体进行纹理处理,wolfram-mathematica,Wolfram Mathematica,我正在使用Mathematica 8,我正在努力进行纹理处理。虽然多面体对象的纹理已经被证明是相对简单的,但我在尝试对球体进行纹理处理时遇到了一个问题。在文档中,对所示球体进行纹理处理的唯一方法是使用SphereCalPlot3D,这是一个很难解决的解决方案,特别是因为我正在尝试对球体执行操作(例如:翻译)。总的来说,我的问题是:有没有办法对球体基本体进行纹理处理?类似的内容会很有帮助: sphere = SphericalPlot3D[1, {u, 0, Pi}, {v, 0, 2 Pi},

我正在使用Mathematica 8,我正在努力进行纹理处理。虽然多面体对象的纹理已经被证明是相对简单的,但我在尝试对球体进行纹理处理时遇到了一个问题。在文档中,对所示球体进行纹理处理的唯一方法是使用
SphereCalPlot3D
,这是一个很难解决的解决方案,特别是因为我正在尝试对球体执行操作(例如:翻译)。总的来说,我的问题是:有没有办法对球体基本体进行纹理处理?

类似的内容会很有帮助:

sphere = SphericalPlot3D[1, {u, 0, Pi}, {v, 0, 2 Pi},
                             TextureCoordinateFunction -> ({2 #5, 1 - 2 #4} &), 
                             PlotStyle -> { Lighting -> "Neutral", Axes -> False,
                             Boxed -> False, Texture[texture]},     Mesh -> None][[1]];

F[k_] := Graphics3D[ Rotate[ sphere, k, {2, 1, 6}, {0, 0, 0}], Boxed -> False]

现在,我们可以设置纹理球体旋转的动画(围绕定位在点
{0,0,0}
处的向量
{2,1,6}
):


您不能直接对
球体
进行纹理处理,但您可以使用例如
SphereCalPlot3D
创建一个纹理球体,并提取第一部分以获得一个基本体,您可以使用
Translate
进行操作。比如说

sphere = SphericalPlot3D[1, th, phi, Mesh -> False, PlotPoints -> 25,
  PlotStyle -> {Opacity[1], Texture[ExampleData[{"ColorTexture", "GiraffeFur"}]]},
  TextureCoordinateFunction -> ({#4, #5} &)][[1]];

Graphics3D[Translate[sphere, {{0, 0, 0}, {2, 2, 2}}]]

为了完整起见,您还可以使用
ParametericPlot3D
生成带有纹理的球体

map = ExampleData[{"TestImage", "Lena"}];
sphere = ParametricPlot3D[{Cos[u] Sin[v], Sin[u] Sin[v], Cos[v]}, {u, 
  0, 2 Pi}, {v, 0, Pi}, Mesh -> None, 
TextureCoordinateFunction -> ({#4, 1 - #5} &), 
Lighting -> "Neutral", Axes -> False, Boxed -> False, 
PlotStyle -> Texture[Show[map]]]


如果我理解正确,Heike的回答表明结果的第一部分是GraphicsComplex,这是一个图形原语。

不,这是我设法做到的。。。我想对球体[]函数生成的球体基本体进行纹理处理。当前无法将纹理应用于
Sphere[]
。相关:和
map = ExampleData[{"TestImage", "Lena"}];
sphere = ParametricPlot3D[{Cos[u] Sin[v], Sin[u] Sin[v], Cos[v]}, {u, 
  0, 2 Pi}, {v, 0, Pi}, Mesh -> None, 
TextureCoordinateFunction -> ({#4, 1 - #5} &), 
Lighting -> "Neutral", Axes -> False, Boxed -> False, 
PlotStyle -> Texture[Show[map]]]