我喜欢 Mathematica 5中安静且不受干扰的色域和3D绘图照明。
是否可以在 Mathematica 7中设置3D样式,就像在 Mathematica 5中一样?
Plot3D[Sin[x y], {x, 0, Pi}, {y, 0, Pi}, ImageSize -> 360]
<< Version5`Graphics`
Plot3D[Sin[x y], {x, 0, Pi}, {y, 0, Pi}, ImageSize -> 360]
此代码可以轻松比较版本5和版本7图形的可视外观:
v5style = {{"Ambient", RGBColor[{0.356, 0.294, 0.4}]}, {"Directional",
RGBColor[{0.56, 0., 0.}],
ImageScaled[{2, 0, 2}]}, {"Directional", RGBColor[{0., 0.56, 0.}],
ImageScaled[{2, 2, 2}]}, {"Directional",
RGBColor[{0., 0., 0.56}], ImageScaled[{0, 2, 2}]}};
PostScriptGraphics /: MakeBoxes[PostScriptGraphics[str_String], _] :=
Cell[GraphicsData["PostScript", str], CellAutoOverwrite -> True,
CellBaseline -> Center]
v5vsv7[\[Theta]_] := {Developer`LegacyGraphics[];
v5Graphics =
Graphics`Legacy`Plot3D[Sin[x y], {x, 0, Pi}, {y, 0, Pi},
ImageSize -> 360,
ViewPoint -> RotationTransform[\[Theta], {0, 0, 1}][{3, 0, 3}]];
v5PostScript = ExportString[v5Graphics, "APS"];
Developer`SymbolicGraphics[];
PostScriptGraphics[v5PostScript],
Graphics3D[First@Graphics3D@v5Graphics,
FilterRules[Last@Graphics3D@v5Graphics, Options[Graphics3D]],
ViewPoint -> RotationTransform[\[Theta], {0, 0, 1}][{3, 0, 3}],
PlotRangePadding -> None,
ImageSize -> 360] /. (Lighting -> _) -> (Lighting -> v5style)};
Grid@Table[v5vsv7[\[Theta]], {\[Theta], 0, 2 Pi, Pi}]
答案 0 :(得分:4)
先生。我想,W已经很好地回答了你的问题。这是一个可以玩一些玩具的玩具,包括其他调色板。它从W先生使用的值开始。
Manipulate[
Plot3D[Sin[x y], {x, 0, Pi}, {y, 0, Pi}, PlotLabel -> cf,
ImageSize -> 360, ColorFunction -> cf, Mesh -> mesh,
Lighting -> {{"Ambient", cs},
{"Directional", RGBColor[{s, 0., 0.}],
ImageScaled[{2, 0, 2}]}, {"Directional", RGBColor[{0., s, 0.}],
ImageScaled[{2, 2, 2}]}, {"Directional", RGBColor[{0., 0., s}],
ImageScaled[{0, 2, 2}]}}],
{{cf, None, "color function"}, Prepend[ColorData["Gradients"], None]},
{{cs, RGBColor[{0.356, 0.294, 0.4}]}, ColorSlider},
{{s, .5, "brightness"}, 0, 1, Appearance -> "Labeled"},
{{mesh, 15}, 0, 30, 1, Appearance -> "Labeled"}]
答案 1 :(得分:1)
这是否接近足够近,或者距离您的要求还有很长的路要走? p>
new = {{"Ambient", RGBColor[{0.356, 0.294, 0.4}]}, {"Directional",
RGBColor[{0.56, 0., 0.}], ImageScaled[{2, 0, 2}]}, {"Directional",
RGBColor[{0., 0.56, 0.}], ImageScaled[{2, 2, 2}]}, {"Directional",
RGBColor[{0., 0., 0.56}], ImageScaled[{0, 2, 2}]}};
Plot3D[Sin[x y], {x, 0, Pi}, {y, 0, Pi}, Lighting -> new, Mesh -> 20]