Plot shown by Region does not show the full region

Why does the plot produced by the following code not contain the point {0. 0}?

Region[ImplicitRegion[y <= x/2 && x >= 0 && y >= 0, {x, y}],
PlotRange -> Full, Axes -> True]


Why does the above not plot a wedge starting at 0, like this:

As far as I understand my code, I first define a region that follows the inequalities specified by ImplicitRegion, and then call Region to plot it.

Yet still, I seem to have made a mistake. What is it?

• Using {{x, 0,1}, {y, 0,1}} instead of {x,y} as the second argument fixes the issue. – kglr Nov 5 '18 at 15:32
• RegionPlot works better than Region. Region[DiscretizeRegion@ImplicitRegion[..],..] also works. – Michael E2 Nov 5 '18 at 15:58
• @Sudix I don't think it's a bug. Numerical routines always suffer from discretization errors. I don't think Region is meant to be robust in the way you're using it. I'd recommend DiscretizeRegion as the tool to use. It has options to control the discretization. RegionPlot tries a harder than Region, but it's not as robust as DiscretizeRegion (or the FEM ToElementMesh, which allows even finer control). – Michael E2 Nov 5 '18 at 16:14
• RegionPlot is a 2D plotter, and RegionPlot3D is a 3D plotter. Region is not a plotter. What you see is result of the Front End displaying a 2D Region: it makes a quick plot of it to show in the notebook, but the result of Region is not Graphics. If you want a Region, use Region. The bad picture does not indicate a bad result. In fact, the result is still accurate. Compare Region[..] // InputForm // Short and RegionPlot[..] // InputForm // Short on your region code and my plot. – Michael E2 Nov 5 '18 at 16:40
• For instance, you can use RegionPlot on your Region and you get accurate graphics. You can also use DiscretizeRegion on it. That is, if you want to have your Region[..]. – Michael E2 Nov 5 '18 at 16:49

Edit

The discretization made automatically by Region is a bit strange, but it does satisfy all the condition you give. Perhaps Region's boundary choice is bad enough that the behavior you complain about should be considered a bug.

However, as things stand, to get what you want you must give Region better specifications of the boundary you want. One way to it is

Region[ImplicitRegion[y <= x/2 && x >= 0 && y >= 0, {{x, 0, 4}, {y, 0, 4}}],
Axes -> True]


Another is

Region[
DiscretizeRegion[
ImplicitRegion[y <= x/2 && x >= 0 && y >= 0, {x, y}],
{{0, 4}, {0, 4}}],
Axes -> True]


Both work-arounds produce

• But ImplicitRegion can be used as I did according to the documentation: ImplicitRegion[cond,$\{x_1,...,x_n\}$]; represents a region in $\mathbb{R}^n$ that satisfies the conditions cond. – Sudix Nov 5 '18 at 16:30
• @Sudix. Valid point. I have edited my answer in way that I hope addresses it. – m_goldberg Nov 5 '18 at 17:42