簡體   English   中英

Graphics3D中的球體樣式和網格間距

[英]Sphere Styling and Grid Spacing in Graphics3D

請考慮 :

colors = {Red, Green, Blue};
style = {Thickness[.01], Thickness[.01], Thickness[.01]};
cAxes = {{{0, 0, 0}, {0, 0, 1}}, {{0, 0, 0}, {0, 1, 0}}, {{0, 0, 
 0}, {1, 0, 0}}};

Graphics3D[{{#1, #2, Line@#3} & @@@ Transpose@{colors, style, cAxes}, 
Blue, Specularity[White, 3], Sphere[{.5, .5, .5}, .1]}, 
Boxed -> False, FaceGrids -> All, 
FaceGridsStyle -> Directive[Black, Dashed]]

使用Yoda的解決方案如何設計線條

我怎樣才能使用GrayLevel為球體着色 (稍后我將對其進行操作)。

我怎么能擁有更密集的FaceGrids 水平和垂直10條線。 我也不明白為什么邊緣彼此相距遙遠。

在此輸入圖像描述

將圖形對象及其樣式分組在列表中總是很好的做法,以防您需要快速添加另一個具有不同樣式的對象。 我的意思是把它寫成{Blue, Specularity[White, 3], Sphere[{.5, .5, .5}, .1]} 現在,您可以在Sphere之前輕松添加GrayLevel術語,它將起作用。

對於FaceGrids ,我相信你必須為每張臉以所需的間距手動定義線條。 這是一個展示如何為一張臉做的例子。

Graphics3D[{{#1, #2, Line@#3} & @@@ 
   Transpose@{colors, style, cAxes}, {Blue, GrayLevel[0.3], Lighting -> "Neutral",
   Specularity[White, 3], Sphere[{.5, .5, .5}, .1]}}, Boxed -> False, 
 FaceGrids -> {{{0, 0, 1}, 
    Transpose@({#, #} & /@ Range[0, 1, 0.1])}}, 
 FaceGridsStyle -> Directive[Black, Dashed]]

在此輸入圖像描述

對於相應的平面,面定義為±1 ,另外兩個面為零。 所以我的例子中的{0,0,1}對應於z=1平面。

提供給FaceGrids的列表可以很容易地為每個面部計算,而不是手動輸入它們, 但我會留給你:)

編輯:

由於您需要四周均勻的網格,因此請定義繪制網格線的位置

gridList = Transpose@({#, #} & /@ Range[0, 1, 0.1]);

然后,對FaceGrids使用以下FaceGrids

FaceGrids -> Join @@ Table[{RotateLeft[j {0, 0, 1}, i], gridList}, 
    {i, {0, 1, 2}}, {j, {-1, 1}}]

以下是PlotRangePadding -> None

在此輸入圖像描述

除了尤達的回應:

  • Lighting -> "Neutral"將允許灰度對象顯示為灰色而不是各種顏色。

  • PlotRangePadding -> None將刪除網格線上的空格(取決於PlotRange的設置。)

Yoda打敗我打字FaceGrids設置(見文檔 )。 但這是另一種選擇。

您可以嘗試設置FrameTicks ,而不是顯式設置FaceGrids設置,因為默認情況下FaceGrids遵循這些設置,然后使用OpacityFrameTicks設置為不可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM