4 votos

¿Por qué la Curva de Bezier de trabajo?

Recientemente he estado mirando las curvas de Bézier y tratando de entender cómo funcionan. Sé que en general una curva de Bézier es dada por la ecuación

$$ \vec{\mathbf{B}}(t) = \sum_{k=0}^n{b_{k,\ n}(t)\vec{\mathbf{P}}}_k $$ donde $b_{k,\ n}(t)$ son Bernstein Base de polinomios $$ b_{k,\ n}(t) = {n \elegir k}t^k(1 - t)^{n-k}. $$ En un nivel intuitivo entiendo por qué este constructor crea una curva suave. Básicamente, lo que sucede es que como $t$ rangos de$0$$1$, va más de la maxima de los polinomios de Bernstein. Esto hace que los diferentes puntos en la suma a recibir a diferentes valores de peso, y al $t = k/n$, el punto con mayor peso es $\vec{\mathbf{P}}_k$, por lo que la curva tiende hacia ese punto. Esto es lo que hace que las curvas de Bézier a ser tan suave.

Ahora, pensé, podría utilizar esta comprensión intuitiva de una curva de Bézier para la construcción de otros tipos de curvas de Bezier? La cosa principal que tenía en mente era hacer una "Curva" que pasa a través de todos los puntos de control. Para ello, en lugar de utilizar Bernstein base de polinomios, he creado mi propia polinomios: $$ P_{r\ n}(t) = \begin{cases} (-1)^n\left(\frac{2}{r}\right)^{2n}t^n(t - r)^n, & 0 < x < r \\ 0, & \text{otherwise} \end{casos} $$ Estos polinomios tienen la propiedad de que han maxima en $r/2$ igual a $1$, tiene una doble raíz en$0$$r$, y se $C^\infty$ continuo. Pensé que si se define una curva de Bézier como $$ \vec{\mathbf{B}}(t) = \sum_{k=0}^n{P_{r\ n}\left(t + \frac{k-1}{n}\right)\vec{\mathbf{P}}_k} $$ con $r = \frac{2}{n-1}$, entonces la curva sin problemas interpolar entre cada uno de los puntos. El resultado fue menos que satisfactorio. enter image description here

Que "curva" se formó con los puntos $P_0 = \{0,\ 0\}$, $P_1 = \{1,\ 3\}$, $P_2 = \{3,\ 2\}$, $P_3 = \{4,\ 5\}$, y $P_4 = \{5,\ 0\}$.

Bueno, a lo mejor el de Bernstein base de los polinomios de la forma de una curva suave, porque no son 0 en todas partes otro que el intervalo de $(0, r)$. Así que he editado los polinomios: $$ P_{r\ n}(x) = \begin{cases} (-1)^n\left(\frac{2}{r}\right)^{2n}x^n(x-r)^n, & x \in [0, r] \\ (-1)^n\left(\frac{2}{r}\right)^{2n}2^{-\left|\left\lfloor\frac{x}{r}\right\rfloor\right|}\left(x-2r\left\lfloor\frac{2x}{r}\right\rfloor\right)^n\left(x - 2r\left\lfloor\frac{2x}{r}\right\rfloor-\frac{r}{2}\right)^n, & \text{otherwise} \end{casos} $$

La siguiente imagen ilustra $P_{\frac12,\ 4}(x)$ en el intervalo de $[0, 1]$ (observe que el eje x es escalado por $1000$).

enter image description here

Lo que hace la curva parecen ahora?

enter image description here

Uff. Creo que no fue la solución.

La última cosa que quería probar era la escala Bernstein base de polinomios por lo que su máximo fue en $y=1$.

$b_{v,\ n}(t)$ máximo local en $x = \frac{v}{n}$, $y = {n\choose v}\left(\frac{v}{n}\right)^v(1-\frac{v}{n})^{n-v}$. Así que si queremos aumentar la escala de la Bernstein base de polinomios, sólo tenemos que escala por la inversa de a $y$. Definir $$ \vec{\mathbf{B}}(t) = \sum_{k=0}^n{C_{k,\ n}b_{k,\ n}(t)\vec{\mathbf{P}}_k} $$ con $$ C_{k,\ n} = \begin{cases} 1, & \text{if %#%#%}\\ \left[{n\choose k}\left(\frac{k}{n}\right)\right]^{-n}(1-\frac{k}{n})^{k-n}, & \text{otherwise} \end{casos} $$

Lo que hace de nuestra curva parecen ahora?

enter image description here

Lo que en la tierra? Eso no es ni de cerca!

Así que, es mi primera intuición equivocada o incompleta? ¿Qué Bernstein base de polinomios que hace que la curva de Bezier para ser tan suave?

Como un apéndice, ¿por qué no alguno de mis curvas (excepto la última) continua, incluso a pesar de que la base de los polinomios de se $k = 0$ continua?

EDIT: ahora que lo pienso, la segunda curva he creado esto me recuerda a algún tipo de Kochanek-Bartels spline variante con extraños $C^\infty$, $t$, y $b$ parámetros. Hice accidentalmente tropieza a través de uno?

1voto

bubba Puntos 16773

Su idea básica es correcta. No hay nada muy especial acerca de los polinomios de Bernstein, y de hecho, hay otras alternativas que se utilizan a veces.

La idea fundamental es que estamos tratando con "mezcla de curvas de la forma $$ \mathbf{C}(t) = \sum_{i=0}^m\phi_i(t)\mathbf{P}_i $$ donde $\phi_0, \ldots, \phi_m$ "fusión" de las funciones y $\mathbf{P}_0, \ldots, \mathbf{P}_m$ son los puntos de control. Tenga en cuenta que estamos formando una combinación lineal de los puntos, aquí, y esto tiene sentido sólo si los coeficientes de uno.

Las propiedades de la curva son muy dependientes de las propiedades de la mezcla de funciones, por supuesto. Ver estas notas para más información.

Si usted quiere que su curva de pasar a través de todos los puntos de control, puede utilizar los polinomios de Lagrange como la combinación de funciones. Para el cúbicos caso, los polinomios de Lagrange son: \begin{align*} \phi_0(t) & = -\tfrac12 (3t-1)(3t-2)(t-1) = -\tfrac92 t^3 + 9t^2 - \tfrac{11}2 t + 1 \\ \phi_1(t) & = -\tfrac92 t(3t-2)(t-1) = \_\tfrac{27}2 t^3 - \tfrac{45}2 t^2 + 9t \\ \phi_2(t) & = -\tfrac92 t(3t-1)(t-1) = -\tfrac{27}2 t^3 + 18t^2 - \tfrac92 t \\ \phi_3(t) & = \_\tfrac12 t(3t-1)(3t-2) = \_\tfrac92 t^3 - \tfrac92 t^2 + t \end{align*}

Si se hace un gráfico de estos, vamos a ver por qué funcionan. Los polinomios de Lagrange suma a uno, pero son negativas en algunos lugares. Esto significa que usted pierde el casco convexo de la propiedad de las curvas de Bézier. También, el control interactivo es menos intuitivo: si mueve un punto de control en alguna dirección, algunas partes de la curva se mueve en la dirección opuesta.

Puede utilizar las funciones racionales (en lugar de polinomios) como la combinación de funciones. Eso es lo racional de las curvas de Bézier son.

Usted puede utilizar (polinomio a trozos) spline funciones para la fusión; que le da paramétrica de curvas polinomiales.

Puede utilizar las funciones trigonométricas para la mezcla, que le da el llamado "trigonométricas de Curva" en las curvas.

Por último, hay mezcla de funciones que hacen uso hiperbólicos de senos y cosenos. Estos conducen a la construcción de los llamados "splines bajo tensión". Ver los documentos de la década de 1970 por Cline, Schweikert, Spath, y otros.

Y así sucesivamente.

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