Reflection Symmetry

I’m interested in a method for determining if a simple polygon has reflection symmetry.

Let r denote reflection about the y-axis and \rho_\theta denote counter clockwise rotation by the angle \theta. Note that P has reflection symmetry iff r \rho_\theta P = P for some angle \theta. We also know r \rho_\theta = \rho_{-\theta} r. Hence r\rho_{\theta} P = \rho_{-\theta} r P = P. Multiply both sides by \rho_\theta to have rP = \rho_{\theta} P.

(1) Thus P has reflection symmetry iff rP = \rho_{\theta}P for some angle \theta.

This simple fact enables a easy method to determine if P has reflection symmetry. Take a simple polygon P. First assume the centroid of P is the origin this is needed to ensure that a rotation about the x-axis is a rotation of P and not a rotation and translation of P.

From (1) we know that rP = \rho_\theta P for some angle \theta. To determine \theta we pick a vertex, v, of P. We know that v is rotated into some vertex w of rP. Hence we try rotating v into every vertex w of rP until we get a match.