F = Sqrt[x^2+(y + I/2)^2];
Plot3D[Im[F], {x, 0, 1}, {y, -1, 1},
AxesLabel -> Automatic,
Mesh -> None,
ColorFunction -> Function[{x, y, z}, ColorData["TemperatureMap"][z + 0.5]],
ColorFunctionScaling -> False,
ViewPoint -> {2, -2, 1.5}]
This plot is fine. However, when I want to plot the figure below:
Plot3D[{Im[F],-Im[F]}, {x, 0, 1}, {y, -1, 1},
AxesLabel -> Automatic,
Mesh -> None,
ColorFunction -> Function[{x, y, z}, ColorData["TemperatureMap"][z + 0.5]],
ColorFunctionScaling -> False,
ViewPoint -> {2, -2, 1.5}]
There is a gap in the upper surface (the white line). Is there any way to remove the gap to make the upper surface smooth?
Maybe one solution is to use Piecewise to rewrite the function for the upper surface. However, I don't want yo use this method, because my further project needs to plot 4 such surfaces, which is difficult to use Piecewise.
Another solution is using "Exclusions -> None". However, when the figure is rotated, the figure is bad.
Any good solutions?