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 に答える