1

考えてください :

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 を使用して Sphereに色を付けるにはどうすればよいですか(後で操作します)。

また、 FaceGrid をより高密度にするにはどうすればよいでしょうか。水平方向と垂直方向に 10 行。また、エッジが互いに離れている理由もわかりません。

ここに画像の説明を入力

4

3 に答える 3

2

異なるスタイルの別のオブジェクトをすばやく追加する必要がある場合に備えて、グラフィックオブジェクトとそのスタイルをリストにグループ化することをお勧めします。つまり、と書くということ{Blue, Specularity[White, 3], Sphere[{.5, .5, .5}, .1]}です。GrayLevelこれで、前に用語を簡単に追加でき、機能Sphereします。

については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、他の2つはゼロです。したがって{0,0,1}、私の例ではz=1平面に対応します。

に提供されるリストFaceGridsは、手動で入力する代わりに、顔ごとに簡単に計算できますが、それはあなたに任せます:)

編集:

全体に均一なメッシュが必要なので、グリッド線を描画する場所を次のように定義します。

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

次に、以下を使用しますFaceGrids

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

結果は次のようになりますPlotRangePadding -> None

ここに画像の説明を入力してください

于 2011-11-14T00:18:57.257 に答える
1

ヨーダの応答に加えて:

  • Lighting -> "Neutral"グレースケールオブジェクトをさまざまな色ではなく灰色で表示できるようになります。

  • PlotRangePadding -> Noneグリッド線上のスペースを削除します(の設定によって異なりPlotRangeます)。

于 2011-11-14T00:21:59.517 に答える
1

Yoda は、FaceGrids設定を入力するように私を打ち負かしました (ドキュメントを参照してください)。しかし、ここに別の方法があります。

設定を明示的に設定する代わりに、設定FaceGridsを試すこともできFrameTicksます。これは、デフォルトでFaceGridsがこれらに従うFrameTicksためですOpacity

于 2011-11-14T00:22:26.710 に答える