GRAFICACION EN 3D
3.1
REPRESENTACION DE OBJETOS EN TRES DIMENSIONES
La representación de los objetos en
tres dimensiones sobre una
Superficie plana, de manera que
ofrezcan una sensación de volumen se llama
Perspectiva. Se representan los
objetos sobre tres ejes XYZ. En el eje Z,
Se representa la altura. En el eje Y,
se representa la anchura y en el eje X,
Se representa la longitud.
Los distintos tipos de perspectivas
dependen de la inclinación de los
Planos Los sistemas más utilizados son
la isométrica, la caballera y la cónica.
Estudiaremos en este curso las dos
primeras.
Perspectiva Isométrica. En ella los
ejes quedan separados por un mismo
Ángulo (120º). Las medidas siempre se
refieren a los tres ejes que tienen su
Origen en un único punto.
Existen diferentes tipos:
El parámetro u toma los valores de 0 a 1 y las coordenadas (x’, y’, z’) representan cualquier posición situada a lo largo de la línea de proyección. Cuando u = 0.
3.4 LINEAS Y SUPERFICIES CURVAS
Perspectiva Caballera. En ella los
ejes X y Z tienen un ángulo de 90º y el
Eje Y con respecto a Z tiene una
inclinación de 135º. En es te caso las
Medidas en los ejes X y Z son las
reales y las del eje Y tiene un coeficiente
De reducción de 0.5.
DIBUJAR EN PERSPECTIVA
En ambas perspectivas, el sistema más
sencillo es llevar las tres
Vistas principales sobre los planos
formados por los ejes:
Alzado en el plano XZ.
Planta en el plano XY.
Perfil en el plano YZ.
Cada una de las aristas que forman las
vistas se prolonga paralelamente
Al eje que corresponda:
Horizontal paralelo al eje de las X.
Vertical paralelo al eje de las Z.
Profundidad paralelo al eje de las Y.
3.2 VISUALIZACION DE OBJETOS
La representación tridimensional del territorio
abre nuevas posibilidades en el ámbito geográfico. Pero el 3D por sí solo no
está justificado. Las acciones para la navegación por una escena tridimensional
son más complejas que las necesarias para la navegación en un plano. Cada
aplicación de software ha resuelto de manera distinta, la manera de controlar
la elevación, rotación y cabeceo del punto de vista, lo que requiere un
aprendizaje por parte del usuario. Además, el tiempo real de las escenas exige
más cantidad de recursos, tanto de cálculo como de datos.
La representación tridimensional es
conveniente cuando la visualización de una tercera
magnitud, típicamente la elevación del terreno, resulta útil para la
interpretación de los datos que se quieren mostrar. Se presentan a continuación
algunos de los usos más comunes.
PROYECCIONES
Existen dos
métodos básicos para proyectar objetos tridimensionales sobre una superficie de
visión bidimensional. Todos los puntos del objeto pueden proyectarse sobre la
superficie a lo largo de líneas paralelas o bien los puntos pueden proyectarse
a lo largo de las líneas que convergen hacia una posición denominada centro de
proyección. Los dos métodos llamados proyección en paralelo y proyección en
perspectiva, respectivamente, se ilustran. En ambos casos, la intersección de
una línea de proyección con la superficie de visión determinada las
coordenadas del punto proyectado sobre este plano de proyección. Por
ahora, se supone que el plano de proyección de visión es el plano z = 0 de un
sistema de coordenadas del izquierdo.
PROYECCIÓN EN PARALELO
Una proyección
en paralelo preserva dimensionar relativas de los objetos y esta es la técnica
que se utiliza en dibujo mecánico para producir trazos a escala de los objetos
en las dimensiones. Este método sirve para obtener vistas exactas de varios
lados de un objeto, pero una proyección en paralelo no ofrece una presentación
realista del aspecto de un objeto tridimensional.
Las vistas formadas con proyecciones en
paralelo se pueden caracterizar de acuerdo con el ángulo que
la dirección de proyección forma con el plano
de proyección.
Cuando la dirección de proyección es perpendicular al
plano de proyección, se tiene una proyección ortogonal.Una proyección que
no es perpendicular al plano se denomina proyección oblicua.
PROYECCIÓN ORTOGONAL
La Proyección ortogonal es
aquella cuyas rectas proyectantes auxiliares son perpendiculares al plano de
proyección (o a la recta de proyección), estableciéndose una relación entre
todos los puntos del elemento proyectante con los proyectados.
Existen diferentes tipos:
Vista A: Vista frontal o alzado
Vista B: Vista superior o planta
Vista C: Vista derecha o lateral derecha
Vista D: Vista izquierda o lateral izquierda
Vista E: Vista inferior
Vista F: Vista posterior
Las ecuaciones
de transformación parea efectuar una proyección paralela ortogonal son
directas.Para cualquier punto (x, y, z), el punto de proyección (Xp, Yp, Zp) sobre
la superficie de visión se obtiene como Xp=X, Yp=y, Xp=0.
PROYECCIÓN OBLICUA.
Es
aquella cuyas rectas proyectantes auxiliares son oblicuas al plano de
proyección, estableciéndose una relación entre todos los puntos del elemento
proyectante con los proyectados
Una proyección
Oblicua se obtiene proyectando puntos a lo largo de líneas paralelas que no son
perpendiculares al plano de proyección. La figura muestra una proyección
oblicua de un punto (x, y, z) por una línea de proyección a la posición (xp,
Yp).
PROYECCIONES PERSPECTIVA
Para obtener
una proyección en perspectiva de un objeto tridimensional, se proyectan puntos
a lo largo de líneas de proyección se interceptan en el de centro de
proyección.
En el centro
de proyección está en el eje z negativo a una distancia d detrás del plano de
proyección. Puede seleccionarse cualquier posición para el centro de
proyección, pero la elección de una posición a lo largo del eje z simplifica
los cálculos en las ecuaciones de transformación.
Podemos
obtener las ecuaciones de transformaciones de una proyección en perspectiva a
partir de las ecuaciones paramétricas que describen la línea de proyección de
esta línea.
X’ = x –xu
Y’ = y- yu
Z’ = z-(z + d)
u
El parámetro u toma los valores de 0 a 1 y las coordenadas (x’, y’, z’) representan cualquier posición situada a lo largo de la línea de proyección. Cuando u = 0.
Las ecuaciones
producen el punto P en las coordenadas (x, y, z). En el otro extremo de la
línea u = 1 y se tienen las coordenadas del centro de proyección, (0, 0,-d).
Para obtener las coordenadas en el plano de proyección. Se hace z’ = 0 y se
resuelven para determinar el parámetro u:
Este valor del
parámetro u produce la interacción de la línea de proyección con el plano de
proyección en (xp, yp, 0). Al sustituir las ecuaciones, se obtienen las
ecuaciones de transformación de perspectiva.
Mediante una
representación en coordenadas homogéneas tridimensionales, podemos escribir la
transformación de la perspectiva en forma matricial.
Las
coordenadas de proyección en el plano de proyección se calculan a partir de las
coordenadas homogéneas como:
[xp yp
zp 1] = [xh/w yh/w zh/w 1]
Cuando un
objeto tridimensional se proyecta sobre un plano mediante ecuaciones de
transformaciones de perspectiva, cualquier conjunto de líneas paralelas del
objeto que no sean paralelas al plano se proyectan en líneas convergentes.
3.3
TRANSFORMACIONES TRIDIMENSIONALES
La manera más fácil
de conseguir las transformaciones básicas (traslación, rotación, escalación, en
general las transformaciones afines) es utilizando matrices de transformación.
Con
ligeros cambios a las matrices, se pueden combinar para conseguir que una sola
matriz resultante nos sirva para varias de estas transformaciones.
El utilizar coordenadas homogéneas nos ayudará a obtener este
efecto. Comenzaremos explicando cómo se utilizan para conseguir
transformaciones en 2 dimensiones y, posteriormente, veremos las
transformaciones en 3 dimensiones.
Coordenadas
homogéneas1
Nos será
útil sustituír las coordenadas (x, y) por las coordenadas (xh, yh, h),
llamadas coordenadas homogéneas, donde
x = xh/h, y = yh/h (2.1)
De donde
(xh, yh, h) = (h. x, h. y, h) (2.2)
Existe un número
finito de representaciones homogéneas equivalentes para cada punto de
coordenadas (x, y) seleccionando un valor no cero para h.
Por
conveniencia, escogeremos h = 1, con lo que cada posición bidimensional se
representará con las coordenadas homogéneas (x, y, 1).
Expresar posiciones en
coordenadas homogéneas nos permite representar todas las ecuaciones de
transformación geométrica como multiplicaciones de matriz. Se representan las
coordenadas con vectores de columna de 3 elementos y las operaciones de
transformación se expresan como matrices de 3 por 3. Para la traslación de un
punto (x, y, 1) una distancia tx en x y una distancia ty en y,
obtenemos:
Transformaciones
compuestas
Esta representación nos permite “combinar” varias transformaciones
en una, multiplicando las diferentes matrices de transformación, por ejemplo,
el efecto de trasladar un objeto cierta distancia T (tx1, ty1),
girarlo un cierto ángulo R(θ) y volverlo a
Trasladar
a su posición inicial T2 (-tx1, -ty1), se
consigue multiplicando cada uno de sus puntos P (x, y, 1) de la manera
siguiente:
P’ = T. R. T2 . P (2.4)
Donde P’ es el vector columna que representará al punto
resultante y T, R y T2 son las matrices de
transformación correspondientes
T
=
|
1 0 tx
0 1 ty
0 0 1
|
R
|
=
|
cos θ
- sen θ 0
sen θ
cos θ 0
0 0 1
|
T2
|
=
|
1 0 -tx
0 1 -ty
0 0 1
|
(2.5)
|
Lo que sería lo
mismo que multiplicar al punto P por la matriz M obtenida el combinar
las tres matrices
Matrices
de transformación en 3D más comunes
Traslación
En la
representación homogénea tridimensional de las coordenadas, se traslada un
punto de la posición P = (x, y, z) a la posición P’ = (x’, y’, z’) con la
operación de matriz
P’ = T
x P .
Rotación
Para generar
una transformación de rotación, debemos designar un eje de rotación respecto
del cual girará el objeto, y la cantidad de rotación angular, es decir, un
ángulo (θ).
Una rotación tridimensional se puede especificar alrededor de
cualquier línea en el espacio. Los ejes de rotación más fáciles de manejar son
aquellos paralelos a los ejes de coordenadas.
Los
ángulos de rotación positiva producen giros en el sentido opuesto a las
manecillas del reloj con respecto al eje de una coordenada, si el observador se
encuentra viendo a lo largo de la mitad positiva del eje hacia el origen de
coordenadas.
La matriz de rotación respecto al eje z se
especifica como (3.11).
RZ
cos
θ -sen θ 0 0
sen θ cos θ 0
0
0 0 1 0
0 0 0
1
La matriz de rotación respecto al eje x se
especifica como (3.12)
RX
1 0 0 0
0 cos θ
-sen θ 0
0 sen θ cos θ 0
0 0 0 1
Y la matriz de rotación respecto al eje y se
especifica como (3.13)
RY
cos θ 0
sen θ 0
0 1 0 0
-sen θ 0 cos θ 0
0 0 0 1
Se forma
una matriz de rotación inversa al sustituír el ángulo de rotación θ por –θ. Los
valores negativos para los ángulos de rotación generan rotaciones en una
dirección en el sentido del reloj, de modo que se produce la matriz identidad
cuando se multiplica cualquier matriz de rotación por su inverso2.
Rotaciones
tridimensionales generales
Es
posible establecer una matriz de rotación para cualquier eje que no coincide
con un eje de coordenadas como una transformación compuesta que implica
combinaciones de traslaciones y rotaciones de los ejes de coordenadas.
Primero se desplaza el eje de rotación
seleccionado a uno de los ejes de coordenadas, después se establece la matriz
de rotación con respecto del eje de coordenadas para el ángulo de rotación
específico y por último se obtiene la secuencia de transformación inversa para
regresar al eje de rotación a su posición original.
Propiedad
de las matrices de rotación
Dada la matriz de rotación en 2D
Considérense
los primeros dos renglones de la submatriz superior izquierda de 2 x 2 como
vectores. Se obtiene:
A = cos θ i – sin θ j
B = sin θ i + cos θ j
Puede
mostrarse que estos vectores tienen 3 propiedades:
1. Cada
uno es un vector unitario.
2. Cada
uno es perpendicular al otro (su producto punto es cero).
3. El
primero y segundo vectores pueden rotarse con R(θ) y quedarán en el eje x
positivo y y positivo, respectivamente (esto equivale a que el determinante sea
uno).
Estas
propiedades también son válidas para las columnas de la submatriz de 2x2. Las 2
direcciones son aquellas en las que los vectores en el eje x y y son rotados.
Una
matriz con estas propiedades se llama especial ortogonal.
Las 3
propiedades se extienden a las matrices de rotación en 3D que vimos
anteriormente.
Retomemos el ejemplo anterior. La matriz
resultante que obtuvimos después de multiplicar las matrices de transformación
y las rotaciones en los 3 ejes, se puede obtener directamente si pensamos en
una matriz de rotación general como
R= r1x r2x r3x
r1y r2y r3y
r1z
r2z r3z
Donde
cada uno de los renglones es un vector ortogonal a los otros dos. Todo lo que
tenemos que hacer es “asignar” cada uno de estos “ejes” a la figura (ejes que,
después de la transformación, quedarán sobre los ejes x, y y z).
Por
ejemplo, Rz
es el vector unitario sobre R1R2 que rotará al eje
positivo de la z.
Rz = [r1z r2z r3z]T = P1P2 / |P1P2|
El vector
unitario Rx
es perpendicular al plano de P1, P2, y P3 y
rotará al eje positivo de las x, así que Rx debe ser el producto cruz
normalizado de 2 vectores en el plano:
Rz = [r1x r2x r3x]T = P1P3 x P1P2 / |P1P3 x P1P2|
Finalmente,
Ry = [r1y r2y r3y]T = Rz x Rx
Rotará al eje positivo de las y. La matriz
compuesta está dada por
r1x r2x r3x 0
r1y r2y r3y 0
r1z r2z r3z 0
0 0 0 1
|
. T(-x1, -y1, -z1) =
|
R . T
|
Escalación
La matriz para la transformación de escalación
de una posición P = (x, y, z) con respecto del origen de las coordenadas se
puede escribir como (3.14)
S= ex 0 0 0
0
ey 0 0
0 0 ez 0
0 0
0 1
Donde ex,
ey, y ez pueden tener cualquier valor positivo (valores de escalación en cada
uno de los ejes, si estos no son iguales, se cambian las dimensiones relativas
en el objeto).
La
escalación con respecto a una posición fija seleccionada se puede obtener con
la siguiente secuencia de transformación:
1. Se
traslada el punto fijo al origen.
2. Se
escala el objeto con respecto al origen.
3. Se
traslada el punto fijo a su posición original.
Las
matrices de reflexión tridimensional se establecen de manera similar a aquellas
para dos dimensiones. Las reflexiones con respecto a un eje dado son
equivalentes a rotaciones de 180º sobre ese eje. Las reflexiones con respecto
de un plano equivalen a rotaciones de 180º en un espacio cuatridimensional.
Por ejemplo, para obtener una reflexión con
respecto del plano xy (cambio de sistema de lado derecho a lado izquierdo),
cambiando el signo de las coordenadas de z sin alterar las coordenadas x y y,
se utiliza la siguiente matriz de transformación:
Las matrices de
reflexión para invertir x y y se definen de manera similar. Es posible efectuar
las reflexiones con respecto de otros planos como una combinación de rotaciones
y reflexiones del plano de las coordenadas.
Recortes
Las
transformaciones de recorte se pueden utilizar para modificar las formas de los
objetos, también son útiles para obtener transformaciones de proyección
general.
Por ejemplo, la siguiente transformación
produce un recorte del eje de las z:
Asignando
cualquier valor real a a y b. El efecto es la alteración de los valores de las
coordenadas de x y y en una cantidad proporcional al valor de z, mientras que z
permanece sin cambios.
Transformaciones
compuestas
Se
realiza una transformación tridimensional compuesta al multiplicar las
representaciones matriciales para las operaciones individuales en la secuencia
de transformación. Esta concatenación se lleva a cabo de derecha a izquierda,
donde la matriz del extremo derecho es la primera transformación que se aplica
a un objeto y la matriz del extremo izquierdo es la última transformación.
(Lean
11.7 further: Foley 5?)
(final,
ya cuando hayan entendido los conceptos, decirles que es mucho más fácil
manejar ejes de coordenadas dentro de cada uno de los objetos que estarlos
llevando al origen para cada transformación: CAMBIO DE COORDENADAS)
Cambio de
sistemas de coordenadas
Cuando se
manejan varios objetos al mismo tiempo, una manera alternativa de manejar las
transformaciones es pensar que cada objeto tiene su propio sistema de
coordenadas.
LINEAS
La recta es una
sucesión infinita o continua de puntos a lineados en una
sola dirección. Es una de las
primitivas gráficas en computación gráfica viene dada
por la ecuación y= m.x+b , donde m es la pendiente de la recta y v
es el corte con el eje y.
Como los pixeles se grafican en
posiciones enteras, la línea trazada solo puede aproximar posiciones de lineas
reales entre los puntos extremos especificados.
Una línea recta debe dibujarse como
una sucesión de pixeles.
Efecto de escalera que se produce cuando
se genera una línea como una serie de pixeles .
TRASFORMAR PRIMITIVAS
EN PIXELES
Las coordenadas de los pixeles deben
estar lo más cerca posible de una linea recta real.
Un algoritmo debe cumplir con:
*La secuencia de pixeles debe ser lo más
recta que se pueda.
*Las líneas deben tener el mismo grosor
e intensidad sin importar el grado de inclinación.
*Las líneas deben dibujarse lo más rápido posible.
ALGORITMOS PARA TRAZO
DE LINEAS
ALGORITMO DDA
El analizador diferencial digital (DDA)
es un algoritmo que sirve para calcular posiciones de pixeles a lo largo de una
linea, mediante el uso de la ecuación.
∆y=m.∆x
Ecuación básica de la recta y=m.x+b
M es la pendiente y v es la intersección con el eje y
ALGORITMO DE BRESENHAM
Calcula cual de dos pixeles es el más
cercano a la trayectoria de una linea.
El pixel x(i),y(i) se divide en
(xi+1,yi)(xi+1,yi+1) hay que decidir cuál pintar calculando la distancia
vertical entre el centro de cada pixel y la linea real.
Las posiciones de los pixeles se
representan por las áreas rectangulares numeradas.
ATRIBUTOS DE LAS
PRIMITIVAS DE SALIDA
Estilo de líneas
*Los atributos de estilo de linea
determinan la forma en que se desplegara una linea por medio de una
rutina de trazo de líneas. Los atributos de linea son su tipo, su anchura y su
color.
Tipo de linea
Los atributos de linea incluye las líneas
sólidas, líneas punteadas con líneas y punteadas.
El método setStrokeStyle
permite cambiar el estilo de linea.
Este método acepta los
siguientes valores:
a)
Graphics.SOLID - linea solida
b)
Graphics.DOTTED- linea de puntos
GRAPHICS 2D SETSTROKE
Un objeto basicstroke
contiene información sobre la anchura de la linea, estilo de uniones,
estilos finales, y estilo de punteado.Esta información se usa cuando
se dibuja una Shape con el método DRAW.
La anchura de linea es la longitud de la linea medida
perpendicularmente a su trayectoria. La anchura de la linea se especifica
como un valor float en las unidades de coordenadas de usuario, que es equivalente
1/72 pulgadas cuando se utiliza la transformación por defecto.
BASICSTROKE SOPORTA 3
ESTILOS DE UNIÓN:
*JOIN_BEVEL
*JOIN_MITER
*JOIN_ROUND
El estilo de finales es
la decoración que se aplica cuando un segmento de linea termina.
BASICSTROKE soporta 3 estilos de
finalización:
*CAP_BUTT
*CAP_ROUND
*CAP_SQUARE
El elemento 0 representa el primer punteado,
el elemento 1 el primer espacio , etc. La fase de punteado es
un desplazamiento en el patrón de
punteado, también especificado en unidades de coordenadas de usuario.
La fase de punteado indica que parte del patrón de punteado se aplica
al principio de la linea.
PATRÓN DE RELLENO
Los patrones de
relleno están definidos por el atributo Paint en el
contexto Graphics2d. Para seleccionar el atributo paint, se crea
un ejemplar de un objecto que implemente el interface paint y eso
pasa dentro del método Graphics2d setPaint.
ANCHURA DE LINEA
La implementacion de las opciones de
anchura de lineas dependen del tipo de dispositivo de salida que
se utilice Una linea ancha en un monitor
de vídeo podría trazarse como lineas paralelas adyacentes,
mientras que una graficadora de pluma podría requerir cambios de pluma.
Como sucede con otros atributos puede usarse como comando de anchura de linea
para fijar la anchura regular de la linea.
Color de linea
Cuando un sistema ofrece sistemas de
color (o bien de intensidad) un parámetro que da el índice de color
regular se incluye en la lista de valores de atributos del sistema.
Método para cambiar color
*set Color (int
color)
*setColor(int
rojo,int verde,int azul)
SUPERFICIES
CURVAS
Los despliegues tridimensionales de las superficies curvas pueden
generarse a partir de un conjunto de entrada de las
funciones matemáticas que define la superficies o bien a partir de un
conjunto de puntos de datos especificados por el usuario.Cuando se especifican
funciones de curvas, un paquete puede emplear las ecuaciones definidoras para
localizar y gráfica posiciones de pixeles a lo largo de la trayectoria
de la curva, casi igual como sucede con las curvas en dos dimensiones.Un
ejemplo de la clase de superficies que pueden generarse a partir de
una definición funcional seda en la figura. A
partir de un conjunto de datos de entrada, un paquete determina las
descripciones funcionales de la curva que mejor se ajusta a los puntos de
datos según las restricciones de la aplicación
En la figura 1.7 se muestra un objeto cuya superficies curvas pueden ser
definidas por un conjunto de entrada de punto de datos.
Podemos representar una linea
curva tridimensional en forma analítica con la pareja de
funciones.
y=f(x), z=g(x)
Con la coordenada x seleccionada como variable independiente.los valores de
las variables dependientes y,z se determinan después a partir de
las ecuaciones 1.6 a medida que se avanza a través de valores de x de
un extremo de la linea al otro.Esta representación tiene algunas
desventajas.Si se desea una gráfica alisada,se debe cambiar la
variable independiente siempre que la primera derivada (pendiente) de f(x) o
bien g (x) se vuelve mayor que 1.Esto significa que se debe verificar
continuamente los valores de las derivadas,que pueden volverse infinitas en
algunos puntos. Así mismo, las ecuaciones anteriores ofrecen un
formato desproporcionado para representar funciones con valores múltiples.
Una representación mas propicia de las curvas para las aplicaciones
de las gráficas es en términos de ecuaciones parametricas.
ECUACIONES
PARAMETRICAS
Mediante la introducción de un
curto parámetro, u, en la descripción coordenada de una curva,
se puede expresar cada una de las tres coordenadas cartesianas en forma
parametrica. Cualquier punto de la curva puede representarse entonces por medio
de la función vectorial.
p(u)=(x(u),y(u),z(u))
Por lo general, las ecuaciones
parametricas se constituyen de manera que el parámetro se define en
el intervalo de 0 a 1.Por ejemplo una circunferencia en el plano xy con centro
en el origen coordenado podría definirse en forma parametrica como:
También son posibles otras formas
parametrícas para describir circunferencias y arcos circulares.
En el caso de una curva arbitraria, puede ser difícil idear un
conjunto de ecuaciones parametrícas que definen completamente la forma de la
curva.Pero cualquier curva puede aproximarse utilizando diferentes conjuntos de
funciones parametrícas,sobre partes diferentes de la curva.Por lo general estas
aproximaciones se forman con funciones polinomiales.
Dicha construcción por partes de una curva debe implantarse
cuidadosamente para asegurar de que haya transición sencilla de
una sección de la curva a la siguiente. La uniformidad de una curva
puede describirse a partir de la continuidad de la curva entre las secciones.La
continuidad de orden 0 se refiere simplemente a que las curvas se
interceptan.Continuidad de primer orden significa que las lineas
tangentes(primeras derivadas) de dos secciones adyacentes de la curva son la
misma en el punto de adyacencia.
Las ecuaciones parametricas de las
superficies se formulan con dos parámetros u y v. Una posición coordenada
de una superficie se representa entonces por medio de
la función vectorial parametrica.
p(u,v)= (x(u,v),y(u,v),z(u,v))
Las ecuaciones de las coordenadas
x,y,z a menudo se acomodan de modo de que los parámetros u
y v estén definidos dentro del intervalo de 0 a 1.Por ejemplo una
superficie esférica puede describirse con las ecuaciones.
REPRESENTACIONES DE
"SPLINE"
Un spline es una curva diferenciable
definida en porciones mediante polinomios.Para el ajuste de curvas, los splines
se utilizan para aproximar formas complicadas.
La simplicidad de
la representación y la facilidad de cómputo de los splines los hacen
oculares para la representación de curvas en informática
particularmente en el terreno de los gráficos por ordenador.
Curvas B-spline
Son las más utilizadas en la práctica:
1.-b-splines cuadráticos: fuentes True
Type.
2.-b-splens cúbicos: los más comunes en
programas de diseño gráfico.
En general, no pasa por ningún punto de
control (ni siquiera los extremos) , aunque se pude forzar que lo haga.
Principales ventajas sobre las curvas de
Bézier:
1. Es de grado acotado (aun definida por
n puntos)
2. Sobre todo, más apropiada para el diseño interactivo: más
"suaves", control local
Dado un conjunto de puntos P0,...Pn,
obtenemos una curva de aproximación compuesta por varios tramos, y
las ecuaciones de cada tramo están influenciadas solamente por
K vértices del polígono de control siendo K (orden de la
B-spline ) un parámetro elegido a voluntad por el diseñador
y lógicamente, K <n+1:
Los parametros que intervienen en una
curva B-spline se enumeran a continuación:
·
P0,...Pn,n+1 vertices o puntos de control.
·
Ni,K: funciones B-spline basica de orden K.
·
d: grado de las B-spline basicas (eleccion usual, d=3).
·
K:orden de la B-spline: K=d+1.
·
N° de tramos:n-d+1.
·
suavidad global de la curva: CK-2=Cd-1.
Propiedades
·
No interpolen (salvo en P0,Pn, si así se especifica).
·
Parametricas P(t)=(x(t),y(t)).
·
Suavidad Ck-2:K es el orden de la B-spline.
·
No oscilan.
·
Locales
·
Difíciles de calcular salvo casos especiales con formula matricial:
B-spline uniformes, Bezier.
·
Mayor flexibilidad: elección de nodos permiten más tipos de
curva.
CURVAS Y SUPERFICIES
DE BEZIER
Pierre Bezier,
ingeniero francés desarrollo
este método de aproximación de spline para utilizarlo en el
diseño de carrocerías de los automóviles Renault.
Las spline de Bezier tienen varias propiedades que hacen que sean
muy útiles y convenientes para el diseño de curvas y
superficies. Así mismo, es fácil implementarla.Por esos
motivos las splines de Bezier están disponibles en
forma común en varios sistemas de CAD, en paquetes generales
de gráficas y en paquetes seleccionados de dibujo y pintura.
Curvas de Bezier
En general, es posible ajustar una curva
de bezier para cualquier número de puntos de control.el número de puntos de
control que se debe aproximar y su posición relativa determina el
grado de polinomio de Bezier.
La idea de definir geométricamente las
formas no es demasiado compleja: un punto del plano puede definirse por coordenadas.Por
ejemplo, un conjunto A tiene unas coordenadas(x1, y1) y aun punto B le
corresponde (x2, y2).para trazar una recta entre ambos basta con conocer
su posición.
.
Si en lugar de unir dos puntos con una
recta se unen con una curva, surgen los elementos esenciales de una curva
Bezier: los puntos se denominan puntos de anclaje o nodos.La forma de la
curva se define por unos puntos invisibles en el dibujo, denominados puntos de
control,manejadores o manecillas.
Curvas lineales (grado 1)
·
Solo dos puntos de control (P0, P1).
·
Son lineas rectas.
·
Podemos recorrer la curva con un parámetro t є [0,1] que recorre
la recta de P0 a P1.
La curva viene dada por
la expresión:
B(t)=P0+(P1-P0) t=(1-t) P0+tP1, t є [0,1] .
La t en la función para curva lineal de Bezier se puede
considerar como un descriptor de cuán lejos está B(t) de P0 a P1. Por
ejemplo cuando T= 0.25, B(t) es un cuarto de la longitud entre el punto P0 y el
punto P1. Como t varía entre 0 y 1 , B(t) describe una linea recta de P0 a P1.
Curvas cuadráticas (grado 2)
·
Tres puntos de control (P0, P1 y P2).
·
Se construyen dos curvas lineales de Bezier entre P0-P1 y P1-P2.
·
Se contruye una tercera curva lineal de Bezier entre las dos anteriores.
·
El t que recorre esta tercera recta, forma nuestra curva.
Una curva cuadrática de Bezier es el camino trazado
por función B(t), dado los puntos: P0,P1 y P2,
B(t)=(1-t)^2 P0 +2t
(1-t) P1+t^2 P2,t є [0,1] .
Para curvas cuadráticas se pueden construir puntos
intermedios desde Q0 a Q1 tales que t varia de 0 a 1:
·
Punto Q0 varía de P0 a P1 y describe una curva lineal de Bezier.
·
Punto Q1 varia de P1 a P2 y describe una curva lineal de Bezier.
·
Punto B (t) varía de Q0 a Q1 y describe una curva cuadrática de
Bezier.
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 ultimo punto del
grafo de control.
3. El vector tangente en
los extremos de la curva tiene la misma dirección que el primer y último
segmento del grafo de control respectivamente.
4. Él tiene control
global.
Desventajas de las curvas de Bezier
Para grafos de control complejos (formados
por muchos puntos)
1. El grado de la base es
elevado
2. Tienden
a suavizar demasiado la geometría del grafo de control
3. Se tornan insensibles
a pequeños cambios locales.El desplazamiento de un solo punto de
control casi no produce efecto en la curva
4. El control
global provoca que el desplazamiento de un solo punto de
control modifique a toda la curva.
Aplicaciones de la curva de Bezier
Las curvas de Bezier han sido
ampliamente usadas en los gráficos generados por ordenador para
modelado de curvas suaves. como la curva esta completamente contenida en la
envolvente convexa de los puntos de control,dichos puntos pueden
ser suavizados gráficamente sobre el área de trabajo y
usados para manipular la curva de una forma muy intuitiva.las transformaciones
afines tales como traslación y rotación pueden ser
aplicadas con gran facilidad a las curvas, aplicando las transformaciones respectivas
sobre los puntos de control.
CONCLUSION:
Como pudimos observar en esta unidad tenemos
más herramientas a aplicar en cuanto a la graficación 3d y que se componen por
tres ejes x, y, z ya dándole un modelado diferente al visto en 2d que podemos
ver que sirven para diferentes aplicaciones en un video juego el panorama que
nos da el que por medio de matrices también puede ser aplicado la visualización
de los objetos.
Bibliografía
Graficación por computadora
Autor: donald heran /m.pauline baker
graficacionporcomputadora.blogspot.com/2013/05/3_7.html
ignorantisimo.free.fr/.../3D2005_APT02_-_Capitulo_II_Transformacion
No hay comentarios:
Publicar un comentario