Curvas Bézier
Curvas Bézier
Curvas Bézier
Historia
Las curvas de Bzier fueron difundidas en 1962
por el ingeniero francs Pierre Bzier, que las us
para disear carroceras de automvil. Sin
embargo, el estudio de estas curvas, fue
desarrollado en 1959 por el matemtico Paul de
Casteljau utilizando el algoritmo de Casteljau, un
mtodo numricamente estable para evaluar
curvas.
Curva de Bzier
Es una curva paramtrica utilizada con
frecuencia en grficos por ordenador y
campos relacionados. La generalizacin de la curva
de Bzier a dimensiones superiores se llama superficie de
Bzier, de los cuales el tringulo de Bzier es un caso de
especial importancia.
Propiedades de la curva de
Bzier
La curva comienza en el punto P0 y termina en el Pn-1. Esta
peculiaridad es llamada interpolacin del punto final.
La curva es un segmento recto si, y slo si, todos los puntos
de control estn alineados.
La curva de Bzier se encuentra en el interior de la
envolvente convexa de los puntos de control.
El control de la curva es global: Modificar un punto de
control implica modificar completamente la curva.
Aplicaciones
Generalizacin de la Curva de
Bzier
Generalizacin de la Curva de
Bzier
Generalizacin de la Curva de
Bzier
Curvas
Cuadrticas
Ejemplo
Dados los puntos:
aplicar la construccin de una curva de Bzier
para hallar las ecuaciones y la grfica de la curva
sabiendo que t=0.1
Solucin
Puntos:
Curva cuadrtica:
Solucin
Puntos:
Curva cuadrtica:
Tabla:
Solucin
Grfic
a
Ejercicio
Investigacin: Bzier 2D
recursivo
Grado G, donde n = G-1
Investigacin: Superficies de
Bzier en OpenGL
Bzier 2D
recursivo
Bzier 2D recursivo
.Inicialmente, dej P0, j sea Pj para j = 0, 1, ..., n . Es decir, P0, j es el j entrada-simo en la
columna 0. El clculo de entrada j en la columna i es la siguiente:
Pseudocodigo de Bzier 2D
recursivo
Ms precisamente, la entrada P es la suma de (1- T ) P (esquina superior izquierda)
i,j
i -1, j
y TPi -1, j 1 (esquina inferior izquierda). El resultado final ( esdecir , el punto en la curva)
es Pn , 0 . Sobre la base de esta idea, uno puede llegar de inmediato con el siguiente
procedimiento recursivo:
Este procedimiento parece sencillo y corto; sin embargo, es extremadamente ineficiente. He aqu
por qu. Comenzamos con una llamada a deCasteljau ( n , 0) para el clculo de Pn ,
0 . La otra parte se divide este llamado en dos llamadas ms, deCasteljau ( n -1,0) para el
clculo de Pn -1,0 y deCasteljau ( n -1,1) para el clculo de Pn -1,1 .
Propiedades de Bezier
1-El grado de la base de polinomios es uno
menos que la cantidad de puntos de
control.
2-El primer y ltimo punto de la curva
coincide con el primer y ltimo punto del
grafo de control.
3-El vector tangente en los extremos de la
curva tiene la misma direccin que el
primer y ltimo segmento del grafo de
control respectivamente.
4- Tienen control global.
Superficies de Bzier
Se pueden utilizar dos conjuntos de curvas de Bzier para representar
superficies de objetos especificados por punto de control de entrada. La
funcin vectorial paramtrica de la superficie de Bzier se forma como el
producto cartesiano de las funciones de combinacin de Bzier:
Pseudocodigo de la superficie de
bazier
El siguiente es un ejemplo con la superficie de Bzier dado mostrado. Los puntos de control
se muestran en blanco. Esta red de control tiene cuatro filas y cinco columnas y por lo tanto
es un grado (3,4) de superficie de Bzier. Para cada fila, las polilneas intermedios
utilizados para el clculo del algoritmo de de Casteljau se muestran en rojo. Los cuatro
puntos de control intermedios q0 , q1 , q2 y q3 se muestran en la figura. Las polilneas
intermedios utilizados para el clculo de esta aplicacin del algoritmo de de Casteljau se
muestran en azul y el ltimo punto p ( u , v ) en la superficie se muestra como una esfera
roja.
Superficies de Bzier en
OpenGL
Evaluators
Los Evaluators son primitivas sumisnistradas por OpenGL para
evaluacin polinomial de curvas y superficies de Bzier.
Los Evaluators de OpenGL nos permiten especificar una superficie
solo usando sus puntos de control, podemos crear superficies
compuestas por puntos, modelos de alambre (wireframe) o dibujar
modelos sombreados (shaded) ya que los vectores normales a la
superficie son calculados en forma automatica, y hasta superficies con
la aplicacion de Texturas.
Definir el Evaluators
Usar glMap2f() para definir un Evaluator 2D de OpenGL.
Sintaxis: void glMap2f(GLenum target, TYPEu1, TYPEu2, GLint ustride, GLint uorder, TYPEv1,
TYPEv2, GLint vstride, GLint vorder, TYPE points);
En mi ejemplo tenemos:
glMap2f(GL_MAP2_VERTEX_3,0,1,3,5,0,1,15,5,&ctrlpoints[0][0][0])
GL_MAP2_VERTEX_3 = Tipo del punto de control, coordenadas x,y,z de los
vertices.
0 = el valor mas bajo del parametro u.
1 = el valor mas alto del parametro u.
5 = dimencion en la direccion u, en este caso 5.
3 = es el numero de datos por punto de control, en este caso 3 ya que
tenemos x,y,z.
0 = el valor mas chico de v
1 = el valor mas grande de v.
15 = distancia entre los puntos en ctrlpoints, en este caso 3*5 = 15.
5 = dimencion en la direccion v. &ctrlpoints[0][0][0]=es el array que
contiene los puntos de control.
Activar el Evaluators
Este se activa
con glEnable(GL_MAP2_VERTEX_3)
Tipo de superficie a dibujar
Con glMapGrid2f(20, 0.0, 1.0, 20, 0.0,
1.0), me crea una grilla con 20 puntos que
estan comprendidos entre 0.0 y 1.0, eso
para u y v.
Bueno con glEvalMesh2(GL_FILL, 0, 20,
0, 20) me dibuja la superficie en modo
shaded y con glEvalMesh2(GL_LINE, 0,
20, 0, 20) en modo wireframe (solo lineas).
AUTORES:
-TAIPE LOPEZ ANDY
- PONCE IPARRAGUIRRE NOEMY