[Math] splitting polygon in 4 equal parts

algorithmspolygons

I have a convex polygon and I want to divide into 4 equal parts using the two perpedicular splits. Like in a picture. I need s1 = s2 = s3 = s4; I need to get coordinates of point where the lines cross and angle of rotation of polygon.
I think that firstly I need to divide polygon in 2 parts by 1st line, then by 2nd line. Then I get point of line cross and then I check s1=s2=s3=s4. If it is not then I need to rotate polygon at some angle.
Is there anything better for this purpose?

enter image description here

Best Answer

This only applies for convex polygons.

We can use a continuity argument. Fix a direction $v\in S^1$: there exists a (only one) line $t_v$ parallel to $v$ that splits the area of the polygon in two equal parts, $L_v$ on the left of $t_v$ and $R_v$ on the right of $t_v$. For a similar reason, there exists a (only one) line $l_v$ orthogonal to $t_v$ that splits in two equal parts $L_v$, and a (only one) line $r_v$, orthogonal to $t_v$, that splits in two equal parts $R_v$. Call $P_L=t_v\cap l_v$ and $P_R=t_v\cap r_v$. Say that $v$ is "right-handed" if $P_R-P_L$ has the same direction of $v$, "left-handed" if $P_R-P_L$ has the opposite direction. If $v$ is right-handed then $-v$ is left-handed, so somewhere between $v$ and $-v$ we must have a direction that is neither left- or right- handed, i.e. a solution for our splitting problem.

And yes, this is just a consequence of the Borsuk-Ulam theorem.

Related Question