4 votos

Fórmula para crear un polígono de Reuleaux

Los artículos de Wikipedia para Triángulo de Reuleaux y curva de anchura constante hacen un buen trabajo describiendo las propiedades de un polígono de Reuleaux, pero no dan una fórmula directa para calcular o dibujar tal figura, excepto en términos de la construcción manual de compás y arista recta.

¿Existe alguna fórmula o algoritmo que, dado el número de lados y la anchura/diámetro, dé alguna representación de datos de un polígono de Reuleaux que se pueda utilizar para recrearlo programáticamente?

En concreto, busco las coordenadas de los vértices (o el ángulo/dirección de un vértice a otro) y los detalles del arco que los conecta.

6voto

Andrew Puntos 140

Hace tiempo derivé una fórmula paramétrica para los polígonos de Reuleaux en esta entrada del blog .

Para que este post sea autocontenido, aquí están las ecuaciones:

$$\begin{align*} x&=2\cos\frac{\pi}{2n}\cos\left(\frac12\left(t+\frac{\pi}{n}\left(2\left\lfloor\frac{n t}{2\pi}\right\rfloor+1\right)\right)\right)-\cos\left(\frac{\pi}{n}\left(2\left\lfloor\frac{n t}{2\pi}\right\rfloor+1\right)\right)\\ y&=2\cos\frac{\pi}{2n}\sin\left(\frac12\left(t+\frac{\pi}{n}\left(2\left\lfloor\frac{n t}{2\pi}\right\rfloor+1\right)\right)\right)-\sin\left(\frac{\pi}{n}\left(2\left\lfloor\frac{n t}{2\pi}\right\rfloor+1\right)\right) \end{align*}$$

Aquí hay una Mathematica demostración:

Table[ParametricPlot[2 Cos[/(2 n)] Exp[I (t +  (2 Floor[n t/(2 )] + 1)/n)/2] -
                     Exp[I  (2 Floor[n t/(2 )] + 1)/n] // ReIm, {t, 0, 2 }],
      {n, 3, 7, 2}] // GraphicsRow

Reuleaux polygons

(Nótese el uso de la forma compleja de las ecuaciones paramétricas).


Para algunas aplicaciones, una ecuación polar (como la de esta respuesta ) podría ser más conveniente. Se puede utilizar la fórmula habitual de la distancia en coordenadas polares para obtener la ecuación polar de un $n$ -polígono de Reuleaux:

$$r=\cos\left(\theta -\frac{2\pi}{n}\left\lfloor\frac{n (\theta -\pi )}{2 \pi }+\frac{1}{2}\right\rfloor\right)+\sqrt{1+2\cos\frac{\pi}{n}+\cos^2\left(\theta -\frac{2\pi}{n}\left\lfloor\frac{n (\theta -\pi)}{2 \pi}+\frac{1}{2}\right\rfloor\right)}$$

En Mathematica se puede hacer esto:

Table[PolarPlot[With[{c = Cos[ - 2  Floor[n ( - )/(2 ) + 1/2]/n]}, 
                     c + Sqrt[1 + 2 Cos[/n] + c^2]], {, 0, 2 }],
      {n, 3, 7, 2}] // GraphicsRow

para obtener una imagen idéntica a la de arriba.

2voto

Aretino Puntos 5384

Como se puede ver en el siguiente diagrama, si $L$ es la longitud de un lado del polígono regular, $n$ (impar) el número de sus lados y $W$ su anchura, entonces:

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

enter image description here

1voto

Cye Waldman Puntos 144

Hace unos cuatro años desarrollé un programa para generar Reuleaux Registros que se basaban en estrellas aleatorias de un número impar de puntos. El algoritmo comienza en el origen en el plano complejo y dibuja una línea de longitud unitaria. Luego va al final de esa línea y dibuja otra con un ángulo aleatorio, digamos $\alpha_1$ (dentro de unos límites, según el número de puntos de la estrella). Se continúa así hasta el penúltimo ángulo, que debe elegirse de forma que la última línea vuelva al origen. Esto requerirá una iteración. Ahora que la estrella está completa, vas a cada vértice y dibujas un arco circular hasta los dos puntos opuestos. Y voilá, tienes el tronco de Reuleaux.

El programa también puede calcular el perímetro, el área y el centroide de la sección transversal del tronco. Además, puede animar la rotación del tronco en un cuadrado.

Comprendo que esto no es tan sencillo como lo he hecho parecer. Pero tengo un código Matlab que funciona, que no es un ejemplo brillante de informática, pero lo compartiré con gusto si podemos encontrar un vehículo para distribuirlo aquí.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X