Formula to create a Reuleaux polygon

2.5k Views Asked by At

The Wikipedia articles for Reuleaux triangle and curve of constant width do a good job of describing the properties of a Reuleaux polygon, but they don't give a straightforward formula for computing or drawing such a figure, except in terms of the manual compass-and-straightedge construction.

Is there a formula or algorithm that, given the number of sides and the width/diameter, would give some data representation of a Reuleaux polygon that could be used to recreate it programmatically?

In particular, I'm looking for the coordinates of the vertices (or the angle/direction from one vertex to another) and the details of the arc connecting them.

2

There are 2 best solutions below

4
On

As you can see from the diagram below, if $L$ is the length of a side of the regular polygon, $n$ (odd) the number of its sides and $W$ its width, then:

$$L=2W\sin{\pi\over 2n}.$$

enter image description here

4
On

About four years ago I developed a program to generate Reuleaux logs that were based on random stars of an odd number of points. The algorithm starts at the origin in the complex plane and draws a line of unit length. The it goes to end of that line and draws another off at some random angle, say $\alpha_1$ (within limits, depending on the number of points in the star). You continue in that way up to the penultimate angle, with must be chosen such that the last line returns to the origin. This will require an iteration. Now that the star is complete, you go to each vertex and draw a circular arc to the two opposite points. And voila, you have Reuleaux log.

The program can also compute the perimeter, area, and centroid of the log cross-section. In addition, it can animate the rotation of the log in a square.

I appreciate that this is not as simple as I have made it sound. But I have a working Matlab code, which is not a glowing example of computer science, but I will gladly share it if we can find a vehicle to distribute it here.