Polygonal chain beveling

60 Views Asked by At

I am attempting to prove a hypothesis based on my observations of polygon chain beveling, which is named after Blender's edge/vertex bevel feature.

Firstly, let's define the beveling of a polygonal chain $P$:

  1. Create a new polygonal chain $P'$
  2. Select the next point of $P$; call this point $A$
  3. If $A$ is the first or last point of $P$, append it to the end of $P'$ and proceed to step 7
  4. Identify the two segments of $P$ emanating from $A$; name them $S_1$ and $S_2$. $S_1$ originates from the point preceding $A$, while $S_2$ originates from the point following $A$
  5. Determine the midpoint of $S_1$ and $S_2$
  6. Add these midpoints to the end of $P'$
  7. If it's the last point, return $P'$; otherwise, continue at step 2

Upon applying this beveling process, we obtain an outcome similar to the image below: Image generated using GeoGebra

The hypothesis states that if you repeatedly apply this algorithm infinitely many times to an initial chain, you will eventually obtain a straight line connecting the starting and ending points of the original chain.

To test this hypothesis, I performed numerical calculations using an initial chain consisting of points $(0, 1)$, $(1, 1)$, and $(1, 0)$. After each iteration, the total length tended towards $\sqrt{2}$, which is the shortest possible distance between points $(0, 1)$ and $(1, 0)$ in the Cartesian coordinate system. The deviation was approximately $7 \times 10^{-6}$, but only occurred after 100,000 iterations. With each iteration, the length decreases and the average oblique angle (the sum of oblique angles divided by the number of angles) increases, although it does not seem sufficient for a definitive proof.