I try to replicate the two figures of two intersecting cylinders from here.
I tried
cylinders1 =
Graphics3D@{Specularity[White, 20], Red, EdgeForm[],
Cylinder[{{-2, 0, 0}, {2, 0, 0}}]};
cylinders2 =
Graphics3D@{Specularity[White, 40], Blue, EdgeForm[],
Cylinder[{{0, 0, -2}, {0, 0, 2}}]};
Show[{cylinders1, cylinders2}, Boxed -> False]
What should I do in order to get an closer to
(not bother with orientation)?
For the common region RegionPlot3D
RegionPlot3D[
x^2 + y^2 <= 1 && y^2 + z^2 <= 1, {x, -1, 1}, {y, -1, 1}, {z, -1, 1},
Mesh -> False, Axes -> True, Boxed -> False,
PlotStyle -> Directive[Orange, Specularity[White, 20]],
PlotPoints -> 100]
comes handy here but I don't know how to achieve the different coloring shown below.
Thanks.
Answer
In drawing these Steinmetz solids I tried to use as many of the coding points as I could from Paul Bourke's page where your images come from. He uses PovRay, but the code is human readable even if you can't use that program.
Module[{l = 1.75, viewpoint, cylinders1, cylinders2},
viewpoint = 1.2 {-1, -1, 1};
cylinders1 = {Specularity[White, 40], Darker@Darker@Blue, EdgeForm[],
Cylinder[{{-l/2, 0, 0}, {l/2, 0, 0}}, .4]};
cylinders2 = {Specularity[White, 20], Darker@Darker@Red, EdgeForm[],
Cylinder[{{0, -l/2, 0}, {0, l/2, 0}}, .4]};
Graphics3D[{cylinders1, cylinders2},
Lighting -> {{"Point", White, viewpoint + {0, 0, 2}}, {"Ambient",
RGBColor[0.15, 0.15, 0.15]}}, Boxed -> False,
ViewPoint -> viewpoint, Method -> {"CylinderPoints" -> 1000}]]
I tried to use PlotPoints
as an option, but it wouldn't take, then I saw LegionMammal978's answer and took that last option off him.
Edit:
To get the second image, you can just use ParametricPlot3D
, which renders much faster than RegionPlot3D
ParametricPlot3D[{
{-Sqrt[1 - z^2], -u Sqrt[1 - z^2], z},
{Sqrt[1 - z^2], -u Sqrt[1 - z^2], z},
{-u Sqrt[1 - z^2], - Sqrt[1 - z^2], z},
{-u Sqrt[1 - z^2], Sqrt[1 - z^2], z}},
{z, -1, 1}, {u, -1, 1}, Mesh -> None,
PlotStyle ->
Evaluate[{Specularity[White, 40], Darker@Darker@#,
EdgeForm[]} & /@ {Blue, Blue, Red, Red}],
Boxed -> False, Axes -> False, PlotPoints -> 100]
Comments
Post a Comment