Avoid issues using RegionCentroid on Polygon?

So I’m having an issue where the RegionCentroid operation does not compute even though I’ve used it successfully many times in the past.

Here are the coordinates of the shape I’m trying to determine the centroid for:

C1 = {-0.82998570, 0.39131282, 1.38566726}
C2 = {-0.01947705, -0.00824240, 2.45464906}
C3 = {1.21666293, -0.61144232, 2.04941022}
C4 = {1.35625427, -0.67525738, 0.64442667}
S = {-0.01598580, -0.00235848, -0.00262605}

Here I’m building the Polygon:

Plane= Polygon[{C1, C2, C3, C4, S}]

And here is what what I’m using to determine the centroid of the region:

OO=RegionCentroid[Plane]

This is an issue I’m experiencing in Mathematica 11.3. That exact line of commands worked fine in Mathematica 10. I’m getting the error message shown below.

Any ideas as to why this is happening and how to fix it?

Thanks!

Hi Victor,

your 5 points do seem to be located on a plane, but maybe not in a “perfect” way (there is a tiny deviation), so my guess is that this is the problem. A solution could be to regard your polygon as a 3D object and do it like so:

RegionCentroid[ConvexHullMesh[{C1, C2, C3, C4, S}]]
(* Out: *)   {0.4082527412619907`, -0.21401562097540627`, 1.3631274362901387`}

Regards – Henrik

The current behavior is that for points in 3D space:

Polygon[{C1, C2, C3, C4}] // RegionQ (*False*)
Polygon[{C1, C2, C3}] // RegionQ (*True*)

Because Polygon with 4 3-d points is not guaranteed to be one plane.
Even all C_k points are mathematically co-planar, Plane in your case is treated always a 3-D object.

To find the centroid of the polygon bounded by these points, Use the built-in mesh function to generate the 3-d region:

Plane = ConvexHullMesh[{C2, C1, C3, C4, S}]
(* Plane = DelaunayMesh[{C1, C2, C3, C4, S}] also ok*)

Or use BoundaryMeshRegion. Then check with

RegionDimension[Plane] (* = 3 *)
OO = RegionCentroid[Plane] (* = {0.408253,-0.214016,1.36313} *)

Got it! Thank you very much for both suggestions! They worked perfectly.