0

我有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]

因此,该颜色将显示距中心的径向距离。有可能做到吗?我也有非常接近球形的数据云,更准确地说是带有凸起的球形帽。

4

1 回答 1

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]

阴谋

于 2013-02-03T18:55:16.417 回答