Hot answers tagged

6

The way I understood the question, the Cartesian parameters are fixed. I'm just going to call them $x_0$, $y_0$ and $z_0$. But since in spherical coordinates we also have $x=r\cos\phi \sin\theta$, $y=r\sin\phi\sin\theta$, $z=r\cos\theta$, we can rewrite the inequality as $$0 \le x_0 x + y_0 y + z_0 z $$ (the radial coordinate $r$ cancels). This leads me ...


5

Another approach: x0 = -1; y0 = 0; z0 = 1; reg1 = ImplicitRegion[x^2 + y^2 + z^2 == 1, {{x, -1, 1}, {y, -1, 1}, {z, -1, 1}}]; reg2 = ImplicitRegion[ Reduce[TransformedField["Spherical" -> "Cartesian", Tan[θ] >= -z0/(x0 Cos[ϕ] + y0 Sin[ϕ]), {r, θ, ϕ} -> {x, y, z}] && x ∈ Reals && y ∈ Reals ...


3

ParametricPlot3D[ If[Tan[θ] + -Cos[ϕ]/( Cos[θ] Sin[ϕ] Cos[ϕ] + Sin[θ] Sin[ϕ] Sin[ϕ]) > 0, {Cos[ϕ] Sin[θ], Sin[ϕ] Sin[θ], Cos[θ]}, Null], {ϕ, 0, 2 π}, {θ, 0, π}, PlotPoints -> 200] // Quiet or ParametricPlot3D[{Cos[ϕ] Sin[θ], Sin[ϕ] Sin[θ], Cos[θ]}, {ϕ, 0, 2 π}, {θ, 0, π}, RegionFunction -> Function[{θ, ϕ}, ...


3

Try also using Boole. As it was commented by Jason B it requires a certain values of the PlotPoints and PlotRange: ParametricPlot3D[{Cos[ϕ]*Sin[θ], Sin[ϕ]*Sin[θ], Cos[θ]}* Boole[Tan[θ] + 1/(Cos[ϕ] + Sin[ϕ]) > 0], {ϕ, 0, 2 π}, {θ, 0, π}, PlotPoints -> 100, PlotRange -> Full] where I put x=y=z=1. It gives this: Have fun!


2

This could indeed be a bug, but it is one with a simple workaround. Just don't set the PlotPoints to such a low number. In fact, I find that with any number smaller than 6 it will fail: BoundaryDiscretizeGraphics@ Cases[Normal@ RevolutionPlot3D[{2 + Cos[t], Sin[t]}, {t, 0, 2 Pi}, PlotPoints -> #], _Polygon, Infinity] & /@ {5, 6} ...



Only top voted, non community-wiki answers of a minimum length are eligible