WRI confirmed the bugs in the quality options in DiscretizeRegion on 14/Nov/2022
I'm trying to plot the region defined by the following inequalities in 3D:
Sqrt[x^2+y^2-z^2]+Sqrt[-x^2+y^2+z^2]+Sqrt[x^2-y^2+z^2]<=Sqrt[2]&&0<=x<=1&&0<=y<=1&&0<=z<=1
Adopting the parameterization in this answer, I used the following code
Clear[sol, expr, reg, meshreg];
sol = SolveValues[{u^2 == x^2 + y^2 - z^2, v^2 == -x^2 + y^2 + z^2,
w^2 == x^2 - y^2 + z^2}, {x, y, z}];
expr = sol // Last;
reg = ParametricRegion[{expr,
u + v + w <= Sqrt[2]}, {{u, 0, 2}, {v, 0, 2}, {w, 0, 2}}];
Region[reg]
The output figure does not have smooth surfaces:
I tried to use DiscretizeRegion to get a smoother surface by specifying MaxCellMeasure, MeshQualityGoal, and AccuracyGoal. But none of them changed the smoothness of the surface. For example:
meshreg =
DiscretizeRegion[reg, MaxCellMeasure -> 0.001,
AccuracyGoal -> Infinity, MeshQualityGoal -> "Maximal"];
Graphics3D[{EdgeForm[], FaceForm[{Red, Opacity[.5]}], meshreg},
Axes -> True]
produces:
with an error message:
DiscretizeRegion::drtol: Tolerance requested by the AccuracyGoal and PrecisionGoal options is too small to be achieved. Increasing to absolute tolerance 2.5809568279517847`*^-8
Ideally, I would like to have perfectly smooth surfaces (up to human eye precision..)
How to obtain it? Thank you!




RegionPlot3Dand the quality options inDescritizeRegionto WRI. – YYing Nov 13 '22 at 12:02