使用Mathematica在3D中着色表面

时间:2013-02-03 18:01:18

标签: image colors wolfram-mathematica

我在3D中有一点点。使用带有ListPlot3D功能的Mathematica可以很容易地绘制它们。着色对我来说有点困难。我想得到这样的结果:

SphericalPlot3D[
 1 + Sin[-5 \[Phi]] Sin[-5 \[Theta]]/10, {\[Theta], 
  0, \[Pi]}, {\[Phi], 0, 2 \[Pi]}, 
 ColorFunction -> (ColorData["Rainbow"][#6] &), Mesh -> None, 
 PlotPoints -> 30, Boxed -> False, Axes -> False]

这样颜色就会显示距离中心的径向距离。有可能吗?我也有非常接近球形的数据云,更准确地说是带凸起的球形帽。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

nPoints = 10^3;
SeedRandom[7];
data = CoordinateTransformData["Spherical" -> "Cartesian", "Mapping", #] & /@ 
  Transpose[{1 + RandomReal[{-0.15, 0.15}, nPoints], RandomReal[{0, Pi}, nPoints], RandomReal[{-Pi, Pi}, nPoints]}];

ListSurfacePlot3D[data, 
 ColorFunction -> (ColorData["Rainbow"][EuclideanDistance[{0, 0, 0},{#1, #2, #3}]] &), 
 ColorFunctionScaling -> False, Mesh -> None, Boxed -> False, Axes -> False]

plot