(* :Tests: *)
(* :Examples:
ImplicitPlot3D[x^2 + 2 y^2 + 3 z^2 == 3,
{x, -3, 3}, {y, -3, 3}, {z, -3, 3}] (* ellipsoid *)
ImplicitPlot3D[x^2 + y^2 + z^2 - 1 ,
{x, -1, 1}, {y, -1, 1}, {z, -1, 1}]
(* unit sphere. If the first argument of ImplicitPlot3D
is not an equation, it is assumed that argument is to be
set to zero. *)
ImplicitPlot3D[x^2+y^2-z^2==1,
{x,-2,2}, {y,-2,2}, {z,-2,2},
PlotPoints->{{2,2,2},{2,2,2},{2,2,2}}]
(* hyperboloid of one sheet. The ultimate resolution
is that obtained by making 3 passes of successively
finer resolution. The first pass divides the
original range into 8 smaller ranges. Each of those
subranges that contain the surface are again
subdivided into 8 subranges. The process is repeated
for a third pass.*)
ImplicitPlot3D[E^z Cos[x] == Cos[y],
{x,-6,6}, {y,-6,6}, {z,-6,6},
PlotPoints->{16,16,12},
Passes->4]
(* Scherk's minimal surface. The ultimate resolution
is equivalent to dividing the range into 16 * 16 *
12 points. This is realized by making 4 passes of
successively finer resolution. *)
ImplicitPlot3D[z^2 == 1 - (2 - Sqrt[x^2+y^2])^2,
{x,-3,3},{y,-3,3},{z,-1,1}, PlotPoints->{15,15,10},
Passes->Automatic]
(* A one%holed torus. The option for PlotPoints chooses
the maximum number of passes possible that can be used in
rendering the plot with divisions 15 by 15 by 10. *)
ImplicitPlot3D[
x^2+y^2+z^2 == (1 - 0.2LegendreP[3, z/Sqrt[x^2+y^2+z^2]])^2,
{x,-1.2,1.2},{y,-1.2,1.2},{z,-1.2,1.2},
BoxStyle -> Dashing[{0.02, 0.02}],
Axes -> True]
(* a spheroid with zonal harmonics. Any options for
Graphics3D can be used. (The resolution for this plot
is the default PlotPoints->{{5,5,5},{3,3,3}}). *)
ImplicitPlot3D[x y z == 0,
{x,-1,1}, {y,-1,1}, {z,-1,1}, PlotPoints->{{3},{3}}]
(* Surface with points of multiplicity greater
than 1. PlotPoints->{{3},{3}} is equivalent to
PlotPoints->{{3,3,3},{3,3,3}} *)
ImplicitPlot3D[x^4 + y^4 == z^4, {x,-1,1}, {y,-1,1}, {z,-1,1},
PlotPoints->{{3},{3}}]
(* a quartic Fermat cone, this illustrates a poor choice of
the option PlotPoints because the vertex of the cone is not
rendered. To render the vertex either increase the
resolution or in this case, make sure the vertex of the
cone lies on one of the vertices of one of the subboxes
given by PlotPoints. *)
ImplicitPlot3D[x^3 + x^2 y^2 == z^4,
{x,-1,1}, {y,-1,1}, {z,-1,1},
PlotPoints->{{3},{-3}}]
(* error message generated since nonpositive numbers are
not allowed in the PlotPoints option *)
ImplicitPlot3D[E^(x y^2) + Cos[x^2 + y^2 + z^2] == 0, {x,-3,3},
{y,-1,1}, {z,-5,5}, PlotPoints->{{{3}},3}]
(* error message generated because of bad listing of the
PlotPoints option *)
*)