3 votos

Minimización del error en la aproximación del círculo de Bézier.

$$ y = a^2+b^2+1 $$ $$ a = 3cx(1-x)^2 + 3x^2(1-x) + x^3 $$ $$ b = 3cx^2(1-x) + 3x(1-x)^2 + (1-x)^3 $$ Para x entre 0 y 1, ¿para qué valor de c es menor el área bajo la curva?

Para el contexto, esta es la ecuación para el error en una aproximación de una curva cúbica de Bézier para un valor dado de c.

Vea también, http://spencermortensen.com/articles/bezier-circle/

El resultado ingenuo para la aproximación es $$ c = \frac4 3 (\sqrt2 - 1) = 0.5522847498 $$

El resultado de Mortensen busca igualar el error positivo y negativo y lo consigue: $$ c = 0.551915024494 $$

Porque claramente hay más espacio para el error en el positivo que en el negativo, así que si queremos minimizar el error en general tenemos que minimizar el área bajo el gráfico:

Al forzarlo (soy informático) la respuesta debería ser algo así como $$ c = 0.5520137217 $$ Pero, mis habilidades reales para hacer los cálculos necesarios son escasas y mi metodología de fuerza bruta es bastante probable que tenga errores (ya que sólo puedo encontrar los máximos con muchas muestras.


Así que sé que dado un valor de c = 0,55191502449 en incrementos de 0,0000001 por lo que 10.000.001 muestras. me da una suma total de los errores igual a: 1180.57375326880...

Ajustando el valor de c y tirando de ordenador se encuentra que 0,55201372171 da un error total 1159,83397426356..., para las mismas muestras.

Está claro que hay una mejora notable si nuestra métrica no es la diferencia de extremos, sino el error total. Pero mi capacidad de cálculo es escasa y no puedo calcular ni el resultado óptimo ni la ecuación de la suma total del error. Sé que se necesita el cálculo. Pero, si buscamos no sólo reducir el error en los extremos, sino el error en su conjunto, esto parecería dar un valor diferente. En gran parte porque los dos extremos gemelos, o en general aplanar el gráfico del error.

3voto

bubba Puntos 16773

Una buena referencia es

Approximation of circular arcs by cubic polynomials
Michael Goldapp
Computer Aided Geometric Design
Volume 8, Issue 3, August 1991, Pages 227-238

Supongamos que estamos aproximando el primer cuadrante de un arco unitario. Utilizamos una curva cúbica de Bézier con puntos de control en $(1,0)$ , $(p,q)$ , $(q,p)$ , $(0,1)$ por lo que la ecuación de la curva es \begin{align} x(t) &= (1-t)^3 + 3pt(1-t)^2 + 3qt^2(1-t) \\ y(t) &= 3qt(1-t)^2 + 3pt^2(1-t) + t^3 \end{align}

Como has dicho, lo más sencillo es utilizar $p=1$ y $q = \tfrac43(\sqrt2 - 1)$ . Esto da un error $+2.72 \times 10^{-4}$ . Obsérvese que el error es positivo en todas partes: la cúbica se encuentra fuera del círculo. Esta es la curva de error azul en la imagen de abajo.

El siguiente intento es utilizar $p=1$ y $q = 0.55191496$ . Esto da un error de $\pm 1.96 \times 10^{-4}$ . En este caso, el error es equisilábico, como muestra la curva roja de la imagen inferior. Esto es lo mejor que se puede hacer con $p=1$ .

Si está dispuesto a permitir $p \ne 1$ puedes hacerlo aún mejor. Utilice $p=0.998978326$ y $q = 0.553429265$ y se obtiene un error de $\pm 0.55 \times 10^{-4}$ . Una vez más, el error se iguala, como muestra la curva verde de la imagen. La cúbica ya no es tangente al arco circular sus puntos extremos. Esto puede o no importarle.

Los gráficos siguientes muestran el error $$ \text{error}(t) = \sqrt {x(t)^2 + y(t)^2} - 1 $$ para las tres curvas, para $0 \le t \le 1$ . En otras palabras, muestran el verdadero error geométrico (de distancia), no un error de área, y no un error de suma de cuadrados.

enter image description here

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