Всегда полезно группировать графический объект и его стили в списке, если вам нужно быстро добавить еще один объект с другими стилями.Под этим я подразумеваю запись как {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
для соответствующей плоскости, а две другие равны нулю.Так что {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
: