2013-02-03 105 views
0

我有3D中的點雲。用Mathematica和ListPlot3D函數繪製它們很容易。着色對我來說有點困難。我想得到如下結果:使用Mathematica在3D中着色表面

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] 

這樣,顏色就會顯示距中心的徑向距離。可以做到嗎?我也有非常接近球形的雲層數據,更確切地說是球形的凸起。

回答

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