Vous êtes sur la page 1sur 30

Mg. Johnny R. Avendao Q.

e-mail: jravendanoq@gmail.com
Departamento Acadmico de Ciencias de la Computacin
Facultad de Ingeniera de Sistemas e Informtica
Universidad Nacional Mayor de San Marcos
Computacin Grfica

http://sites.google.com/site/unmsmcomputaciongrafica/
Representacin de Curvas
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Objetivos:
Como modelar o representar los
diversos objetos reales?
El problema: no existe un modelo
matemtico del objeto
Solucin:
Aproximacin por trozos o pedazos:
planos, esferas, otras primitivas.
Se propone que los puntos del modelo
no sean parte del objeto, pero que
permitan controlar la forma.
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Representacin de curvas
Existen tres formas de representar los
objetos:
Explcito: y=f(x)
Implcito: f(x,y)=0
Paramtrico:
(x(t),y(t))
Superficies cudricas
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Representacin implcita
Superficie algebraica:
8x
2
- xy
2
+ xz
2
+ y
2
+ z
2
- 8 = 0
Singularidades
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Representacin parmetrica
Mejor manipulacin de la estructura
almbrica.
Forma general:
f(u,v) = ( x(u,v), y(u,v), z(u,v) )
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Curvas parametrizadas
Consideraremos una curva P(t)
parametrizada (normalizada) en el
intervalo [0,1].
Esta se realiza en cada componente:
P(t)=(x(t),y(t),z(t))
El vector tangente a la curva P(t) en un
punto (sobre ella) es obtenida por P(t):
P(t)=(x(t),y(t),z(t))
La parametrizacin a considerar ser el
de un polinomio en la variable t con
caractersticas apropiadas:
Suavidad, continuidad hasta la segunda
derivada.
Flexibilidad para controlar la forma de la
curva.
Fcil manipulacin.

0

1

P(0)

P(1)

P( t)

t

P( t)

Representacin de Curvas
Mg. Johnny R. Avendao Q.
Estudiaremos:
Curva de Hermite.
Curva de Bzier.
Curva Spline, Bspline, Catmull-Rom.
Curvas Nurbs (Non Uniform Rational
Basis).
Haremos las extensiones respectivas
para el caso de superficies,

Algor (B.Spline)
Simulador de conduccin de
carreras (B.Spline)
Aplicacin (Bezier)
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Hermite (1822-1901)
Se necesita 4 elementos:
P
1
y P
2
, puntos extremos e la curva.
T
1
y T
2
, tangentes a la curva en los
puntos extremos.
Usualmente se les denomina de factores de
control (de la curva).
Estos datos permiten un mayor control de la
curva, implcitamente el mdulo de los
vectores tangentes permite cambiar la
forma de la curva.
Se puede construir curvas suaves y que
tomen formas bruscas.
P
1
P
2
T
1
T
2
Representacin de Curvas
Mg. Johnny R. Avendao Q.
formulacin
Cada componente de la curva es parametrizada
por un polinomio:
P(t) = (x(t),y(t),z(t))
x(t) = a
x
t
3
+b
x
t
2
+ c
x
t + d
x
y(t) = a
y
t
3
+b
y
t
2
+ c
y
t + d
y
z(t) = a
z
t
3
+b
z
t
2
+ c
z
t + d
z
Se considera una base de polinomios:
{t
3
,t
2
,t ,1}.
Se determinan los coeficientes, para finalmente
representar la curva de manera compacta:
P(t) = T
H
(t) H G
h
, t en [0,1]
Obs: T
H
H = (2t
3
-3t
2
+1,-2t
3
+t
2
, t
3
-2t
3
+t, t
3
-t
2
)
H: matriz de coeficientes.
G
h
: condiciones geomtricas.
P
1
P
2
T
1
T
2
P=(x,y,z)

Representacin de Curvas
Mg. Johnny R. Avendao Q.
Bzier (1822-1901)
Desarrollado en los aos 60 por Pierre
Bzier, para el diseo de automviles e
implementado en los programas CAD.
Tambin en diseo de fuentes tipogrficas y
generacin de curvas en las impresoras
PostScript.
Se las observa en mltiples programas de
diseo grfico como Corel Draw.
Se puede construir (como mnimo) con tres
puntos de control:
P
0
, P
1
y P
2
.
Los puntos extremos pertenecen a la
curva.
Se puede formular de forma similar a la
curva de Hermite.
http://acg.cs.tau.ac.il/projects/internal-
projects/arrangements-of-bezier-curves
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Formulacin(3 puntos)
Se presenta como:
P(t) = B
2,0
(t)P
0
+ B
2,1
(t)P
1
+B
2,2
(t)P
2
B
2,0
(t) = (1-t)
2
B
2,1
(t) = 2t(1-t)

B
2,2
(t) = t
2
Matricialmente:
P(t) = T
B
M
B
G
b
Para el caso de cuatro puntos es
anlogo.
En general se escribe como:


i n i
i n i
n
i n
u u u B

= ) 1 ( ) (
)! ( !
!
,
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Continuidad en la unin de curvas
Continuidad geomtrica:
El punto P final de una curva C
1

coincide con el punto inicial de la otra
curva C
2
.
Las direcciones de los vectores
tangentes u y w en cada punto de
unin deben tener la misma direccin.
P
w
u
C
1
C
2
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Continuidad entre curvas
G
0
: Continuidad Geomtrica de orden 0. Las
curvas se unen en un punto P.
G
1
: Continuidad Geomtrica de orden 1. La
direccin de los vectores tangente son iguales
en el punto P.
C
1
: Continuidad Paramtrica de orden 1. La
direccin de los vectores tangente son iguales
en P, adems de tener el mismo mdulo.
G
n
: Las derivadas de orden n, de los vectores
tangentes tienen la misma direccin.
C
n
: Adems de cumplir la condicin de G
n
, los
mdulos deben ser iguales.


P
w
u
C
1
C
2
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Construccin de las curvas de Bzier
Donde los coeficientes de Bzier
son definidos como:
Dado n+1 puntos P
0
,P
1
,...,P
n
de
control, la curva de Bzier se define
como:
Adems:

=
=
n
i
i i n
P u B u P
0
,
) ( ) (
i n i
i n i
n
i n
u u u B

= ) 1 ( ) (
)! ( !
!
,
) , , (
i i i i
z y x P =
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Propiedades de la curva de Bzier
El grado de la curva P(u) de Bzier construido con n+1
puntos de control es igual a n.
P(u) va desde P
0
hasta P
n
, es decir, solamente desde el
primer punto de control hasta el ltimo.
Todos los coeficientes de Bzier son no negativos.
Los coeficientes de Bzier cumplen la propiedad de la
Particin de la Unidad, es decir:

u todo para u B
n
i
i n
, 1 ) (
0
,
=
=
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Propiedades de la curva de Bzier
Se puede incrementar el grado de la curva de Bzier, es decir
mayor cantidad de puntos de control, pero esto no quiere
decir que la curva sea la ptima. En otras palabras, con un
nmero suficientemente pequeo se puede obtener la curva
deseada.
Esto es similar cuando se hace la subdivisin de la curva, las
propiedades no se alteran.
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Propiedades de la curva de Bzier
P(u) est definida en el intervalo [0,1].
Propiedad de la Cpsula Convexa: la curva de Bzier est
contenida en el mayor polgono convexo construido con los
puntos de control P
i
.
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Moviendo los puntos de control
Al mover los puntos de control, la
forma de la curva cambia de manera
global, es decir, si movemos slo un
punto de control, esta afectar a toda
la curva.
Si movemos un punto de control
verticalmente, entonces todos los
puntos sobre la curva se desplazan
verticalmente.
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Algoritmo de Casteljau
La construccin del algoritmo de
Casteljau est basada
construccin geomtrica usando
una regla mtrica.
El concepto fundamental est
basado en la eleccin de un
punto C en el segmento AB.

Representacin de Curvas
Mg. Johnny R. Avendao Q.
Forma recursiva
Relacin de recurrencia (similar a la serie de Fibonacci):
function deCasteljau(i,j)
begin
if i = 0 then
return P0,j
else
return (1-u)* deCasteljau(i-1,j) +u*deCasteljau(i-1,j+1)
end

=
=
= + =
+
1 , , 1 , 0
, , 2 , 1
) 1 (
1 , 1 , 1 ,
n j
n i
P u P u P
j i j i j i

Representacin de Curvas
Mg. Johnny R. Avendao Q.
B-Splines (J. Schoenberg )
Un Spline (regla de acero flexible) es una
herramienta de diseo de curvas:
Tcnica de interpolacin.
Polinomio cbico suave.
Vienen implementadas en herramientas de
modelado 3D como Blender, Rhino, etc.
Un B-Spline es una combinacin paramtrica de
splines bsicos:

=
=
n
i
i n i
P t N t P
0
,
) ( ) (
) ( ) ( ) (
, 0
, 1
) (
1 , 1
1 1
1
1 ,
1
,
1
0 ,
t N
t t
t t
t N
t t
t t
t N
casos dems
t t t
t N
k i
i k i
k i
k i
i i
i
k i
i i
i
+
+ + +
+ +

+
+

s s
=
Blender
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Propiedades
N
i,k
(t) posee grado igual k.
Las funciones N
i,k
(t) son no
negativas.
Tienen soporte compacto.
Se cumple la relacin m=n+k+1, si se
tienes m+1 puntos de control, k es el
grado del la funcin base y n+1
funciones bases.
La curva B-Spline queda contenida
en la capsula convexa.
Algoritmos como Graham, fuerza
bruta entre otros. (uso de
argumentos de convexidad).


Representacin de Curvas
Mg. Johnny R. Avendao Q.
Una modificacin de algunos puntos de
control slo afectan a una regin circundante
de ellas.
Las curvas de Bzier son casos especiales
de una curva B-Spline.
Toda la curva es invariante bajo
transformaciones geomtricas (invariancia
afn).
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Curva Splines del tipo Catmull-Rom
Curva de interpolacin: pasa a
travs de todos los puntos de
control.
Fue desarrollada para ser aplicada
en computacin grfica.
Se necesita conocer previamente
dos puntos de control sobre la
curva para obtener otro entre ellas.
Representacin (cuatro puntos):
Q(t)=T
c
M
c
G
c
(
(
(
(

(
(
(
(



=
3
2
1
0
2 3
2
1
0 0 2 0
0 1 0 1
1 4 5 2
1 3 3 1
] 1 , , , [ ) (
P
P
P
P
t t t t Q
Punto deseado
Representacin de Curvas
Mg. Johnny R. Avendao Q.
La curva es de clase C
1
, es
decir, no existe discontinuidad
en las tangentes.
El vector v tangente en P
i

siempre es paralelo a la
secante que une los puntos
P
i-1
y P
i+1
.
La curva no necesariamente
est contenida en la
envolvente convexa (convex
hull).
P
i-1
P
i+1
P
i
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Ejemplo de uso de un Spline Catmull Rom con OpenGL
No se ha usado efectos
realista basado en la
fsica, por lo que la
velocidad puede parecer
poco realista
http://www.youtube.com/watch?v=WwLWwaMrIYM
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Curvas racionales: NURBS
NURBS (Non Uniform Rational B-
Splines): modelo matemtico muy
utilizado en la computacin grfica para
generar y representar curvas y
superficies.
El desarrollo de NURBS empez en 1950
por ingenieros que necesitaban la
representacin matemtica exacta de
superficies de forma libre como las
usadas en carroceras de automviles y
cascos de barcos, que pudieran ser
reproducidos exacta y tcnicamente en
cualquier momento.
Las anteriores representaciones de este
tipo de diseos slo podan hacerse con
modelos fsicos o maquetas realizadas
por el diseador o ingeniero.

Representacin de Curvas
Mg. Johnny R. Avendao Q.
Las NURBS, B-splines, son representaciones
matemticas de geometra en 3D capaces de
describir cualquier forma con precisin, desde
simples objetos hasta los ms complejos slidos
o superficies de forma libre en 3D.
Gracias a su flexibilidad y precisin, se pueden
utilizar modelos NURBS en cualquier proceso,
desde la ilustracin y animacin hasta la
fabricacin.
La geometra NURBS tiene cualidades
esenciales que la convierten en la opcin ideal
para el modelado asistido por computadora.
Las NURBS pueden representar con precisin
objetos geomtricos estndar tales como lneas,
crculos, elipses, esferas y toroides, as como
formas geomtricas libres como carroceras de
coches y cuerpos humanos.
Representacin de Curvas
Mg. Johnny R. Avendao Q.
La cantidad de informacin que requiere
la representacin de una forma
geomtrica en NURBS es muy inferior a
la que necesitan por separado las
aproximaciones comunes.
La regla de clculo de las NURBS, que
se describe a continuacin, se puede
implementar en una computadora de
manera eficaz y precisa.
Las curvas y superficies NURBS se
comportan de maneras similares y
comparten mucha terminologa.
Proporcionaremos informacin ms
detallada sobre las curvas, porque son
ms fciles de describir.


Simulacin de la rbita de un cometa usando
Blender, para seguir la rbita, la cola siempre va
opuesta al sol porque usando una fuerza de
repulsin de tipo esfrica. La cola est hecha con
partculas y el haloSize y el Color RGB estn
ajustados con curvas IPO. La rbita es un crculo
NURBS deformado.
Representacin de Curvas
Mg. Johnny R. Avendao Q.
Referencias
Shene C.K. Introduction to Computing with Geometry Notes. Department
of Computer Science. Michigan Technological University 1997.
Foley, Van Dam, Feiner, Hughes. Computer Graphics: Principles and
Practice, second edition in C. Addison Wesley Publishing Company 1996.
Hoschek, Lasser. Fundamentals of Computer Aid Geometric Design. A.K.
Peters Wellesley Massachusetts 1993.
Pinto Carvalho P. Introduo Geometria Computacional. IMCA 2000.
http://es.wikipedia.org/wiki/NURBS
Animacin usando Blender y Nurbs:
http://www.youtube.com/watch?v=B5zuvZq0y5g
Animacin usando OpenGL y una curva del tipo Catmull-Rom:
http://www.youtube.com/watch?v=WwLWwaMrIYM&translated=1

Vous aimerez peut-être aussi