primitivas gráficas como si tuviéramos como soporte un...
TRANSCRIPT
Inform
àtica gràfica. Universitat de
València
1
Prim
itivas gráficas
(X1,Y1, Z1)
(X2, Y2, Z2)
(X3,Y3, Z3)…
geo
met
ría
T. A
fines
T. V
ista
Rec
ort
e y
T.
Pro
yecc
ión
Dib
uja
do d
e pri
mitiv
as
(Ras
teri
zaci
ón)
La pantalla de visualización es 2D. A
l final hay que “dibujar” la escena
como si tu
viéram
os com
o sopo
rte un pap
el. U
tilizan
do las primitivas de
dibujado
Inform
àtica gràfica. Universitat de
València
2
•Los dispositivos de salida de m
atriz de puntos (raster), están com
puestos por pixelescada uno de ellos situado en una posición de
coordenadas de valores e
nte
ros. Al sistema de coordenadas se le denom
ina “S
iste
ma
de
Coord
enad
as d
e D
isposi
tivo”.
Sistema de coordenadas
Así una recta no em
pieza en la posición
(3.58,4.56). Las coorden
adas son enteras y
por tanto pued
e em
pezar en
(3,4) o en (4,5)
El pixeles la prim
itiva básica de dibujad
o. Sus propiedad
es son la
posición y el color + transparencia. Es conceptualmente equivalente al
punto
Inform
àtica gràfica. Universitat de
València
3
La línea como primitiva
•Supuestos previos:
–El grosor de
la líne
a será de 1 pixel
–Distinguimos entre pendientes |m|>1 y |m|<1. Los casos m = 0, m
= ∞, m
= ±1 son pa
rticulares
y se tratan
aparte.
Para
|m<1|
la coorde
nada
que
tiene los
valores un
iform
emente distribuídoses la
coorde
nada
x. Se le llam
a co
ord
enad
a de
rast
reo
1 2 3 4
2 1 0
Inform
àtica gràfica. Universitat de
València
4
La línea como primitiva (2)
Para
|m>1|
la coorde
nada
de rastreo es la
coorde
nada
y.
1 2 3 4
2 1 0
Inform
àtica gràfica. Universitat de
València
5
La línea como primitiva (3)
•R
estr
icci
ones
par
a dib
uja
r lín
eas: Hay que pensar que
no s
e tr
ata
de
dib
uja
r una
línea
. Una escen
a pu
ede tene
r 10
0.000 polígon
os,
es decir, sob
re 2
50.0
00 r
ecta
s. Y
deb
en poder ser dibujados a 24
escenas por segund
o
•Vam
os a ver tres algoritm
os, cad
a un
o de
ellos es más eficiente que
el anterior:
–Fuerza Bruta
–DDA
–Bresenham
o punto medio
Inform
àtica gràfica. Universitat de
València
6
La línea como primitiva (4)
•A
lgori
tmo d
e fu
erza
bru
ta•
Supongam
os
|m|<
1 (pen
sar co
mo s
eria
con |m
|>1)
•y
= m
x+ b
•X
iy i
= m
x i+ b
•
0b
•1
m+b
•2
2m+b
•3
3m+b
•S
e m
anda
dib
uja
r el
punto
(X
i, └
y i +
0.5
┘)
VE
NTA
JA
S:
Fác
il de
imple
men
tar
Sim
étri
co (da
igual
em
pez
ar a
dib
uja
r por
la x
más
peq
ueñ
a que
por
la m
ás g
rande)
DE
SV
EN
TA
JA
SLa
coord
enad
a y
se c
alcu
la e
n c
om
a flota
nte
(m
ultip
licac
ión +
dos
sum
as)
Inform
àtica gràfica. Universitat de
València
7
La línea como primitiva (5)
•A
lgori
tmo D
DA
(A
nal
izad
or
Difer
enci
al D
igital
)•
Supues
tos
pre
vios:
•Sup
ongamos |m
|<1. Es decir, usamos x com
o coorde
nada de ba
rrido
•La
s línea
s se procesan de
izqu
ierda a de
recha
•Dad
o y i
= m
x i+ b
y s
abie
ndo q
ue
x i+1= x
i+ 1
•y i
+1= m
x i+1+ b
= m
(xi+ 1
) + b
= m
x i+ b
+ m
= y
i+ m
•Es decir:
y i+1= y
i+ m
podem
os
calc
ula
r ca
da
yen
funci
ón d
el v
alor de
la a
nte
rior
•Lueg
o p
inta
mos
com
o a
nte
s el
pix
el(X
i, └
y i +
0.5
┘)
•V
EN
TA
JA
S R
ES
PE
CTO
DE
L M
ETO
DO
AN
TE
RIO
R
•A
horr
amos
una
multip
licac
ión
•C
ues
tión: ¿qué
expre
sión d
eber
íam
os
aplic
ar p
ara
rect
as c
on |m
|> 1
?
Inform
àtica gràfica. Universitat de
València
8
La línea como primitiva (6)
•A
lgori
tmo D
DA
(A
nal
izad
or
Difer
enci
al D
igital
)
•D
ES
VE
NTA
JA
S:
•E
l m
étodo d
e dib
uja
do n
o e
s si
mét
rico
com
o e
l an
teri
or.
Ya qu
e el cálculo de la coorden
ada de
pendiente se basa en el valor de la
anterior calculada, no da lo m
ismo por do
nde se empiece a calcular los
puntos de la recta.
(Hearn, Baker)
Inform
àtica gràfica. Universitat de
València
9
La línea como primitiva (7)
•A
lgori
tmo d
e B
rese
nham
(o d
el p
unto
med
io)
•S
upues
tos p
revi
os:
–Suponem
os 0
< m
<1
–Grosor de la línea 1 pixel. Elijo un trazado de izquierda a derecha (x 0
< x 1
)
•¿C
óm
o funcio
na?
–En cada m
omento, tras dibujar el pixelsituado en (x p
,yp), tenem
os dos
posibilidades, ya que la recta es creciente
(xp+1,y
p) Elegimos el pixel
Est
e
(xp+1,y
p+1) Elegimos el pixel
Nore
ste
El a
lgori
tmo d
e B
rese
nham
elig
e e
l pix
elque
más
cer
ca (dis
tanci
a e
uclíd
ea)
está
de
la v
erdad
era
línea
–S
i M e
stá
por
enci
ma d
e la
rec
ta m
ate
mát
ica,
elij
o e
l pix
elE
–S
i M e
stá
por
deb
ajo d
e la
rec
ta m
ate
mát
ica,
elij
o e
l pix
elN
E
Recta matemática
(xp,yp)
(xp+
1,yp+
1)
(xp+1,yp)
M
Inform
àtica gràfica. Universitat de
València
10
La línea como primitiva (8)
Los casos particulares m
=0,
m=1, m
=∞, son asum
idos por
el algoritm
o aunque es muy
ineficiente y en la practica se
diseñan algoritmos aparte.
Com
o se ve, se utiliza
únicam
ente aritmética de
enteros pa
ra el cálculo del
parámetro d
(Foley, Van Dam)
Inform
àtica gràfica. Universitat de
València
11
La línea como primitiva (9)
•O
tras
consi
der
acio
nes
ace
rca
de
Bre
senham
•No es un algoritmo simétrico. Hay que
program
ar un algoritm
o diferente pa
ra dibujar de derecha a izqu
ierda
Si d=0, contrariamente al
algoritmo visto, hay que elegir,
no el pixelde al lado, sino el de
abajo
SWW
La generación de rectas en
un único sentido muchas veces no es posible
Inform
àtica gràfica. Universitat de
València
12
La línea como primitiva (10)
•Utilización de
diferentes algoritm
os para diferentes pendien
tes
•0 < m <1 (elección entre E y NE)
•1 < m < ∞
(elección en
tre N y NE)
•-1 < m < 0 (elección entre E y SE)
•-∞
< m
<-1 (elección
entre S y SE)
Inform
àtica gràfica. Universitat de
València
13
La línea como primitiva (11)
•C
asos
espec
iale
s (B
rese
nham
los
acep
ta, p
ero e
s in
efic
iente
)
•m
= 0
for
(xi=
x0;
xi<
x1;
xi+
+)
•w
rite
pix
el(x
i,y)
•m
= ∞ f
or
(yi =
y0; yi
< y
1; yi
++)
•w
rite
pix
el(x
,yi)
•m
= 1
for
(xi=
x0;
xi<
x1;
xi+
+)
•w
rite
pix
el(x
i,xi)
Inform
àtica gràfica. Universitat de
València
14
La línea como primitiva (12)
•Hay variacion
es en la intensidad
de la línea dibujada
en funciónde
la pen
dien
te de la m
isma (I =
I (m
)). E
sto es consecuencia del uso de un único pixel
para la representación de
la líne
a.
Long
itud = 6 √2
Long
itud = 6
Solu
ción:Dar escalas de grises en función de la m
Utilizar un grosor mayor que uno y usar técnicas de antialiasing
Inform
àtica gràfica. Universitat de
València
15
Circunferencia com
o primitiva
•C
onsi
der
ació
n g
ener
al:Nos fijaremos en las circun
ferencias centradas en el origen
de coorde
nadas (x
c,y
c). P
ara hacer una
circunferencia cen
trad
a en
otro punto, aplicarem
os un de
splazamiento a esta prim
itiva x = x’ + x
c , y = y’ + y
c
•A
lgoritm
o d
e Fuer
za B
ruta
•E
cuac
ión d
e ci
rcunfe
renci
a en
el o
rigen
: y
= ±
√(R
2–
x2) par
aR
>=1
•S
iconsi
der
amos
com
oco
ord
enad
ade
rast
reo
arbitra
riam
ente
la x
•x
y = √
(R2–
x2)
•0
R
•1
└√(
R2–
1) ┘
(pintand
ohaciael interio
r)
•...
Est
opin
tarí
aun c
uar
tode
circ
unfe
renci
a. P
or
sim
etrí
ase
pin
tael
res
to
Inform
àtica gràfica. Universitat de
València
16
Circun
ferencia com
o primitiva (2)
Des
venta
jas
Conform
e la ta
ngente
tiende a infinito, los valores
de y
se van separando.
Esto podría solucionarse
cambiando la coord. de
barrido cuando la ta
ngente
sea >1
El cálculo es en punto
flotante
Foley, Van Dam
Inform
àtica gràfica. Universitat de
València
17
Circun
ferencia com
o primitiva (3)
•Dán
dole a θ
un paso constante, obtenem
os pun
tos de
igual separación en
la circun
ferencia.
•V
enta
ja: P
uede
usarse un
a si
met
ría
de
oct
ante
•D
esve
nta
ja: C
álculos en
pun
to flotan
te
Fuer
za B
ruta
en c
oord
. Pola
res
Para evitar la separación no homogénea de los puntos, p
odem
os usar coordenadas
polares
x = R cos θ+ x c
0 ≤θ≤ л/ 2
y = R sin θ+ y c
Inform
àtica gràfica. Universitat de
València
18
Circun
ferencia com
o primitiva (4)
•A
lgori
tmo d
e B
rese
nham
o p
unto
med
io p
ara
circ
unfe
renci
as
•Igual que el anterior, aprovecha la simetría de octante. A
sí sólo se
calcula 1/8 del total de los puntos. P
ara ello se usa el procedimiento
CirclePoints
Supues
tos d
e par
tida:
Circunferencia centrada en (0, 0)
Dibujam
os un octante, es decir desde x = 0 h
asta x = y = R / √2 siendo la x la
coordenada de rastreo (pod
ría ser la y tam
bien)
(Foley, Van Dam)
Inform
àtica gràfica. Universitat de
València
19
Circun
ferencia com
o primitiva (5)
•Com
enzamos en el pixel(0,R). Esto tiene
importancia solo para la
expresión de
la d
inicial
•Dad
o un pixelcoloreado de la circun
ferencia, tenem
os dos opciones,
elegir el pixelEste
Eo el Sureste S
E
(Foley, Van Dam)
Inform
àtica gràfica. Universitat de
València
20
Circun
ferencia com
o primitiva (6)
Versión 1 (poco eficiente)
La variable de decisión
dinicialmente tiene un valor
no entero por lo que las
operaciones son en com
a flotante
El cálculo de los
increm
entos de E y SE son
una función de punto, ya
que dependen del valor del
punto anterior
(Hearn, Baker)
Inform
àtica gràfica. Universitat de
València
21
Circun
ferencia com
o primitiva (7)
•Versión
2
•Con
vertimos el valor inicial de
d en un
entero
h. E
sto no
altera la
expresión de
los increm
entos
•h = d -1/4
Al ser h
un entero, usa aho
ra aritmética de
enteros. S
in embargo los
cálculos de los increm
entos, aun
siguen siendo fu
nciones de pun
to.
Inform
àtica gràfica. Universitat de
València
22
Circun
ferencia com
o primitiva (8)
Versión 3 (definitiva)
Los increm
entos se
calculan en función de los
valores anteriores. Por lo
tanto aquí si que hay que
calcular los valores
iniciales
(Foley, Van Dam)
Inform
àtica gràfica. Universitat de
València
23
Elipse com
o primitiva
•A
lgoritm
o d
el p
unto
med
io p
ara
elip
ses
con e
je m
ayor en
abci
sas
Consi
der
ació
n g
ener
al•
Sup
onem
os que
la elipse está centrada en el (0,0) y con
el eje mayor en el eje de abcisas.
ab
-a
-bx
La simetría de esta figura es claramente de
tipo
cuad
rante. Sin embargo, para dibujar el
cuadrante debe
mos dibujar el proceso en
dos partes
•Igual que en la circunf. Com
enzamos a
dibujar por el pixelde posición (0,a)
12
F(x
,y) = b
2x2
+ a
2 y2
–a2
b2
= 0
Inform
àtica gràfica. Universitat de
València
24
Elipse com
o primitiva (2)
(Foley, Van Dam)
Inform
àtica gràfica. Universitat de
València
25
Elipse com
o primitiva (3) E SE
En la región 1 la elección de pixeles:
En la región 2 la elección de pixeles:
SS
E
¿Cuál es el criterio de cambio de un modo de
pintar a otro?
El g
radie
nte
de la curva. ∇ ∇∇∇F=∂F / ∂x
i+ ∂F / ∂y
j = 2b2
x i + 2 a
2y
j
Cuando
la p
endie
nte
del g
radie
nte
sea
1se deb
e producir el cam
bio de
orientación del dibujo.
a2y / b
2x = 1 Es decir, cuando las dos componentes del gradiente sean de
igual m
agnitud
Inform
àtica gràfica. Universitat de
València
26
Elipse com
o primitiva (4)
•A
ten
er e
n c
uen
ta
•En cada
iteración del algoritm
o debo
ana
lizar si he pasado de una región a otra
•En el mom
ento de la transición, la varia
ble de
decisión
d, d
ebe de ser inicializad
a a pa
rtir de los valores del último punto de
la región 1.
•Así, si el último punto es (x p, y
p), e
ntonces d’
0= F(x
p+1/2, y
p-1)
•El algoritm
o pa
ra cuando y =0
•Lo
s increm
entos de
dpu
eden ser calculados en diferencias de
seg
undo orden
com
o en la circun
ferencia. S
e pu
ede incluso usar esta inform
ación pa
ra
el calculo del valor del gradiente también
(Da Silva 19
89)
Inform
àtica gràfica. Universitat de
València
27
Elipse com
o primitiva (5)
Condición a
2 y = b
2 x
en el punto de
evaluación
(Foley, Van Dam)
Inform
àtica gràfica. Universitat de
València
28
Problem
as con el dibujado
•Si elegimos trazar con un ún
ico pixella primitiva, hay un efecto
escalera (jagging) en las primitivas, deb
ido a que pintam
os en un
dispositivo consistente en una matriz de puntos (raster)
•Lo
s algoritmos de punto medio, p
ueden gene
rar figuras no exactas
en cua
nto a sus dimen
siones
(Hearn, Baker)
Inform
àtica gràfica. Universitat de
València
29
Rellenado de polígonos
Pro
ble
ma:
Rel
lenar
de
un c
olo
r el
inte
rior
de
una
figura
cer
rada
Es
un p
roble
ma
gen
eral
, ya
que
los
model
os
suel
en e
star
form
ados
por
mal
las
de
políg
onos
conve
xos
(en g
ener
al tri
ángulo
s o c
uad
rilá
tero
s)
Def
. Políg
ono C
onve
xo: Es aque
l en el que
la línea recta que une dos pu
ntos cualesquiera del interior del polígon
o pe
rmanece toda ella en el interior de
l po
lígono.
Políg
ono C
ónca
vo:La
definición complem
entaria de la anterior
Inform
àtica gràfica. Universitat de
València
30
Rellenado de polígonos
•A
lg. F
uer
za B
ruta
•Sea
un polígon
o P y sea el rectángulo (xo,y0), (x1, y1) el m
ínimo rectán
gulo en el que
está inscrito el polígono.
•for(y=y0; y<= y1; y++)
•for(x=x0; x<=x1; x++)
•if((x,y) está dentro del polígono)
•Pintar(x,y);
•¿Cóm
o sabe
r si un pixeles interio
r?
•Con
tando las intersecciones de las aristas de
la recta horizontal que va desde el lado izquierdo de
l rectángulo que inscribe al polígon
o hasta el pun
to en
cuestión.
A
BC
D
Inform
àtica gràfica. Universitat de
València
31
Rellenado de polígonos
•In
conve
nie
nte
s:
•El análisis es pa
ra cad
a pixelinterior, con
lo que
es muy ineficiente
•El criterio de pe
rten
encia al interio
r es muy simple y se desbarata en do
s casos:
–Cua
ndo la línea de
barrido intersectacon un vértice del polígon
o
–Cua
ndo el pixela pintar está exactamen
te sob
re una arista del polígon
o
Con un criterio com
o este (pinto solo si el núm
ero de
intersecciones es impar), p
intaríamos sólo uno de los dos
píxeles del m
ismo color
Inform
àtica gràfica. Universitat de
València
32
Rellenado por línea de rastreo
•Esq
uem
a del
alg
oritm
o
•1.Para cada línea de rastreo (en el eje y) determ
inar cuáles son las intersecciones con las aristas del polígono y ordenarlas de m
enor a
mayor
•2.Aplicar el dibujado por tram
os entre estos puntos de intersección utilizando un criterio para determ
inar qué tram
os se pintan ycuáles
no.
•M
ejora
s re
spec
to la
fuer
za b
ruta
•-No se consulta si cada pixelpertenece o no al interior de la figura. Se aprovecha la c
oher
enci
a de
línea, es decir, se
pin
ta p
or
tram
os.
•-Definimos un
criter
io d
e par
idad
con los casos particulares bien definidos.
Inform
àtica gràfica. Universitat de
València
33
Rellena
do por línea de rastreo (1)
•Acerca del pun
to 2 del algoritm
o gene
ral. Coh
eren
cia de
línea
•Para cada línea de
rastreo jse calculan las interseccion
es de la línea de rastreo con
las aristas del polígono {q
1j , q 2
j q3j …
.}
•Se ordenan los puntos de intersección
en orde
n creciente de coo
rdenad
a x
•Estos puntos divide
n a la líne
a de
rastreo en tram
os, que
se pintarán
o no
q 1j
j
Inform
àtica gràfica. Universitat de
València
34
Rellena
do por línea de rastreo (2)
•R
egla
de
par
idad
: Decide el tram
o qu
e se pinta
–Reg
la general: Inicialmente la paridad
es pa
r.
Cada intersección con una arista, cam
bia la paridad
Se pintan los tram
os de paridad IM
PAR
-Casos particulares
Efecto de los vértices en la regla de paridad. S
i la línea atraviesa un vértice,
contarem
os cam
bio de paridad por cada arista de la cual el vértice es un
y m
ínim
o
A
B C
A no cambia la paridad
B no cambia la paridad
C cam
bia la paridad
D no cambia la paridad
D
Inform
àtica gràfica. Universitat de
València
35
Rellena
do por línea de rastreo (3)
•Aristas horizontales: N
o contribuyen
a la reg
la anterior ya que no tienen
ni y máximo ni y mínimo. Con este criterio
, dado
un polígon
o, se dibu
jarán las
aristas ho
rizontales inferio
res pe
ro no las supe
riores
Dibujado de los pixelesinteriores únicamente.Si el polígono tiene dibujadas
fron
teras, entonces se colorea el interior de las fronteras. Sino, se colorea entre los
enteros inmediatos a éstas, por la parte interior de
la figura.
Zona exterior
Zona exterior
Redondeo
por arriba
Redondeo
por abajo
Inform
àtica gràfica. Universitat de
València
36
Rellena
do por línea de rastreo (4)
•El elegir los píxeles interio
res evita que
los colores se mezclen
en las fron
teras de
dos polígon
os que
la com
parten
En caso de que la
intersección de la línea de
barrido y la arista sea en
un valor entero, se pinta el
pixelsi la arista es
izquierda y no
se pinta si
es derecha. E
sto evita que
aristas compartidas se
pinten dos veces
Inform
àtica gràfica. Universitat de
València
37
Rellena
do por línea de rastreo (5)
Debido a sus restricciones, p
ara
cuñas, el criterio de paridad
ofrece resultados solo
aceptables
(Foley, Van Dam)
No se pinta porque la intersección
es en un valor entero y es arista
derecha
Inform
àtica gràfica. Universitat de
València
38
Rellena
do por línea de rastreo (6)
(Foley, Van Dam)
Acerca del punto 1 del alg. g
eneral
Podem
os diseñar algoritm
os para
enco
ntr
ar los
punto
s in
teri
ore
s x
de
inte
rsec
ció
n d
e la
lín
ea d
e ra
stre
o c
on u
na a
rista. Para ello
estos algoritmos deben diseñarse
especialmente para aristas izquierdas
y otros para derechas. L
os casos de
aristas horizontales son cubiertos por
el criterio de paridad. L
os de aristas
verticales son casos especiales
donde la intersección con la arista es
siem
pre el m
ismo punto de
coordenada x.
El algoritm
o se basa en que
x i+1= x
i+ 1/m
Inform
àtica gràfica. Universitat de
València
39
Rellena
do por línea de rastreo (7)
•Ejemplo de
traza del algoritm
o Le
ftScanE
dge()
•Sup
ongamos una pendien
te de una arista m
= 5/2 d
onde x0,y0 = 0,1 x1,y1 = 6,16
•Línea rastreo
numerator
denominator
increm
ent
pixel
•1
615
150,1
•2
211,1
•6
•3
12 1,3
•4
18 2,4
•3
•5
9 2,5
•6
152,6
•etc
En este caso la intersección es
un entero
Inform
àtica gràfica. Universitat de
València
40
Rellena
do por línea de rastreo (8)
Necesariamente si es una
arista izquierda, com
o debo
elegir un pixelinterno a la
arista, el pixel
inmediatamente superior al
comienzo (que es entero)
debe ser x+1
Es un menor estricto porque cuando
increm
ent=
denom
inator
estoy en
una intersección de valor entero, y
debe pintarse
Dos
difer
encia
s c
lave
entr
e e
l al
gori
tmo p
ara a
rist
as iz
quie
rdas
y
el d
e a
rista
s der
echas
Arista izda.
Arista izda.
Inform
àtica gràfica. Universitat de
València
41
Rellena
do por línea de rastreo (9)
•A
lgoritm
o e
xplíc
ito
•1. Preparamos una estructura de
datos de tipo “lista de listas” llamada “Lista de aristas (ET)”. E
n ella cada elem
ento correspon
de a un valor y de
la
coorde
nada
de rastreo y contiene
la lista de las aristas qu
e comienzan en dicho valor de
y. P
ara cada arista se guardan tres datos:
•El valor de la coordena
da y m
áximo (donde acab
a la arista)
•La coorden
ada x de intersección con la línea de rastreo
•El valor 1/m
de la arista
•Esta lista de arista esta ordenada por valor creciente de x
•2. Una
vez creada la ET el proceso sigue de esta manera:
Inform
àtica gràfica. Universitat de
València
42
Rellena
do por línea de rastreo (10
)
•a) Sea
yel valor de la coo
rdenad
a y más peque
ño que
tiene una
entrada
en ET
•B) Crea la lista de
aristas activa (AET) e inicialízala a vacía
•C) Rep
etir hasta qu
e AET y ET estén
vacías:
–C1) Mover de ET a AET aqu
ellas aristas cuya ymínima sea yy ordena
r el AET sob
re los valores de x
–C2) Rellena
r los tram
os de arista a arista SIGUIENDO LAS REGLA
S DE PARIDAD VISTAS
–C3) Elim
inar de AET aqu
ellas en
tradas para las cuales y
= ymaxima
–C4) In
crem
entaryen uno
(pasamos a la siguiente línea de rastreo
)
–C5) Actualizar xpara la nue
va línea
•El apartado C5 pu
ede hacerse calculando
la nue
vaxen
el m
omento o bien, si hem
os usado los algo
ritmos tipo LeftscanEdgepreviamen
te para cada
arista y hem
os almacenad
o sus valores en
una
lista, podem
os reemplazar esos valores directam
ente.
Inform
àtica gràfica. Universitat de
València
43
Rellena
do por línea de rastreo (11
)
C1) Mover de ET a AET aquellas aristas
cuya ymínima sea yy ordenar el AET
sobre los valores de x
C2) Rellenar los tram
os de arista a arista
SIGUIENDO LAS REGLA
S DE PARIDAD
VISTAS
C3) Elim
inar de AET aquellas entradas
para las cuales y= ymaxima
C4) Increm
entaryen uno (pasamos a la
siguiente línea de rastreo)
C5) Actualizar xpara la nueva línea
Inform
àtica gràfica. Universitat de
València
44
Rellena
do por línea de rastreo (12
)
Para otras figuras geométricas, com
o circunferencias, triángulos
o cuadrados, su
relleno se hace por tramos únicos. Se usa únicam
ente una tabla de tram
os
ordenados por línea de barrido
Hay que m
odificar el alg. d
el
punto medio para dibujar
puntos interiores a la
circunferencia
Inform
àtica gràfica. Universitat de
València
45
Algoritm
o de la sem
illa (1)
La idea consiste en
suministrar un pixelinterior
del polígono (sem
illa) y a
partir de él , colorear el
interior pintando los píxeles
vecinos hasta llegar a la
fron
tera.
Dos condiciones críticas:
1ª: L
os pixeles
de la fron
tera deb
en estar pintados de un color diferente al fo
ndo
y al color que querem
os rellenar y la figura debe ser cerrada
2ª: D
ependiendo de la fo
rma geo
métrica del polígono, debe elegirse un relleno
de los vecinos de tipo 4 (fig
(a)) o de tipo 8 (fig(b))
Inform
àtica gràfica. Universitat de
València
46
Algoritm
o de la sem
illa (2)
•P
rim
era
apro
xim
ació
n
•Dos algoritm
os de tipo recursivo.
•El algoritm
o FloodFill4se basa en
que el color actual del fondo que querem
os pintar es diferente del de la frontera y del color nuevo de relleno. U
sa 4
llamadas a los 4 vecino
s de
la fig(a) y bu
sca pixelescon el color actua
l de fondo para colorea
rlos con el de relleno
•El algoritm
o BoundaryFill4no
tien
e en
cuenta el color actual del relleno
. Irá coloreand
o los vecinos que no
sean del color de la frontera y no hayan sido
rellena
dos previamente. S
ólo impo
rta el color de la fron
tera.
•G
ran D
esve
nta
ja:
•Hay un gran núm
ero de llam
adas recursivas (una
por pixel) qu
e pu
eden
desbo
rdar la pila del program
a de
rellenado
.
Inform
àtica gràfica. Universitat de
València
47
Algoritm
o de la sem
illa (3)
Foley, Van Dam
Inform
àtica gràfica. Universitat de
València
48
Algoritm
o de la sem
illa (4)
Seg
unda
apro
xim
ació
n:
Sustituimos las llamadas recursivas por una
estructura de datos de tipo pila y realizam
os
rellenos por líneas
A partir de la sem
illa se pinta la línea de pixeles
a la que pertene
ce, p
or la izda
y la dchade la
semilla, hasta to
parse con la frontera.
Conform
e se pinta la línea, se van consultando a
su vez los pixelessuperior e inferior y se van
tomando com
o nuevas semillas los pixeles
adyacentes a la frontera. Aunque la línea de
pintar actual se acabe, seguiremos rastreando
las semilla superior e inferior si no hem
os to
pado
en éstas con la frontera. L
as nuevas semillas se
apilan en la pila de semillas.
Hearn, B
aker
Inform
àtica gràfica. Universitat de
València
49
Algoritm
o de la sem
illa (5)
•Casos Particulares
•El hecho de comprobar cada pixel, por arriba y por abajo si es del color de la frontera es una penalización de
este algo
ritmo.
•Si conocem
os a priori la form
a de
la figu
ra a colorear (po
r ejem
plo una malla de triángulos o cuadrados, o bien círculos, se pu
eden
diseñar algoritm
os
“ad Hoc” pa
ra estas figu
ras con la misma filosofía que el anterior pe
ro que nos eviten consultar tantas veces los pixeles de laslíneas superio
r e inferior.
•Ejcírculo/elipse
Cuando choque con la frontera , la
línea superior elijo -10
pixel
Inform
àtica gràfica. Universitat de
València
50
Antialising
El aliasing
es un fenó
men
o asociado
al
hecho de la discretizaciónde una señ
al
continua.
En
general,
el mue
streo
de un
a seña
l continua
prod
uce
una
pérdida
de
inform
ación de la señ
al. Esta inform
ación
perdida se puede
recuperar por m
étod
os
de recon
strucción (la interpo
lación entre
dos
muestras
es el más sencillo
de
ellos).
Sin emba
rgo si la frecuencia del m
uestreo
está por de
bajo de la
frec
uen
cia
de
Nyq
uis
tde
la
seña
l, la pérdida
no es
recuperable
Una im
agen puede considerarse un caso extrem
o de señal periódica
donde la
frecuencia es infinita. E
n nuestro caso, desgraciadamente el fenómeno se da siem
pre,
por el hecho de discretizar
la im
agen para dibujarla en un dispositivo raster.
Hearn, B
aker
Inform
àtica gràfica. Universitat de
València
51
Antialising(2)
En una imagen el efecto de aliasing
se traduce en un
esca
lonam
iento
(jagging) de la
figura. Tam
bién pueden producirse
arte
fact
os
visu
ales
como por ejemplo los
patrones de M
oiré
Un aumen
to de resolución del dibujad
o no
elim
inaestos artefactos sino que los mitiga
a una escala concreta (a un gran costo
computacional)
Siggraph, wikipedia
Inform
àtica gràfica. Universitat de
València
52
Aliasing
(3)
•A
ntialia
sin
g: Cualquier técnica que
reduzca el efecto visual del aliasing
en la
imagen (sin cambiar de resolución).
•Para ello se modifica el color de los pixeles
elegidos para trazar las primitivas y también
los que están en su alrededor. Estas
técnicas de antialisingpara im
ágenes están
bas
adas
en e
l com
port
amie
nto
fisi
oló
gic
o d
el o
jo h
um
anoque tiende a
fundir los colores próximos espacialmente si
éstos son parecidos (¿servirán estas
técnicas para ballenas?)
Hearn, B
aker
Inform
àtica gràfica. Universitat de
València
53
Aliasing
(4)
•Por lo ta
nto, las prim
itivas trazad
as
con antialiasing
no van a colorear un
único pixel. Nuestras prim
itivas ahora
van a tene
r un
grosor sobre la m
alla
de dibujado y van a ocupar to
tal o
parcialmente el área de
los pixeles
involucrados.
•La idea de los algoritmos de
antialiasing
consiste básicam
ente en
estim
ar el área parcial ocupada por la
primitiva para un pixelconcreto y
determ
inar así su color
Foley, Van Dam
Inform
àtica gràfica. Universitat de
València
54
Aliasing
(5)
¿cómo calcular el área que una primitiva
ocupa en un pixel?
La té
cnica más extendida es la del
Post
filtra
do, tambien
llamada
sobre
mues
treo
o “supersam
pling”.
La idea consiste en dibujar sin antialiasing
la figura a una resolución superior a la
de la im
agen que queremos conseguir
con antialiasing. P
or ejemplo si la
resolución de la im
agen a tratar es
512x512, se hace un renderizadotres
veces más fino enxe ya una
resolución de 1536 x 1536. De esta
manera, cada pixelde la im
agen a
tratar tiene un sobrem
uestreode
nueve subpixeles
ACM Siggraph
Inform
àtica gràfica. Universitat de
València
55
Aliasing
(6)
•Así un pixelde la im
agen
a tratar puede
estar cubierto po
r 3, 2, 1
, 0 píxeles
del sobremuestreo
Sobre
mues
treo
sin p
eso:
•La intensidad de un pixel
decrece con la distancia del
centro del pixela la línea
matem
ática
•Un pixelno se colorea si no
intersectaa la recta matem
ática
•Areas
iguales cubiertas dan el
mismo color de lixel
Inform
àtica gràfica. Universitat de
València
56
Aliasing
(7)
El s
obre
mues
treo
con
pes
o, e
n cambio , u
sa filtros
basados también en la
distancia del centro del pixel
a la prim
itiva para establecer
la im
portancia del área
cubierta.
Se pueden usar filtros con
pesos discretos o bien m
ás
sofisticados com
o los filtros
cónicos
Inform
àtica gràfica. Universitat de
València
57
Aliasing
(8)
•Otra té
cnica consiste en pensar las rectas en
este caso como figuras con una
anchura geom
étrica (de un pixelgeneralmente) y calcular analíticam
ente la influencia
que esta figura con anchura real tiene en cada pixel, g
eneralmente usando el
parámetro distancia al centro del pixel. E
stas se llaman té
cnicas de
Pre
filtra
do.
•Una de ellas como ejem
plo es el A
lgoritm
o de
Gupta
–S
pro
ull para el trazado de
rectas.
•A
lgori
tmo d
e antialia
sin
gpar
a re
ctas
de G
upta
-Spro
ull
•La idea se basa en utilizar el algoritm
o de
Bresenh
ampa
ra calcular también la
distancia a los pixelescontiguos y determ
inar así a través de un filtro basado en la
distancia, el color del pixel. E
ste filtro lo llam
arem
os Filter(D)donde D
es la distancia
entre el centro del pixely el centro de la recta que
queremos trazar.
•Buscamos D = D(d) . D
onde 0 <= D <= 2
Inform
àtica gràfica. Universitat de
València
58
Aliasing
(9)
Tom
emos el algoritm
o de
Bresenh
amy
considerem
os ahora los
pix
ele
ssuper
ior
e in
feri
oral elegido por el algoritm
o
D = v cos Φ
= v dx/ (dx2
+ dy2)1/2
Donde dx= x1 –x0 dy = y1 –y0
v = y
recta-y p
ixel(variable con signo)
Se trata de calcular la variable vde m
anera
increm
ental usando el parám
etro d
del
algoritmo de Bresenham
Inform
àtica gràfica. Universitat de
València
59
Aliasing
(10)
Foley, Van Dam
PonderaciónPaso
Distancia
Ponderación
Paso
Distancia
0-1/8
0 (blanco)
1.40-2.00
1/8-2/8
1
1.20-1.40
2/8-3/8
2
1.08-1.20
3/8-4/8
3
1.00-1.08
4/8-5/8
4
0.92-1.00
5/8-6/8
5
0.80-0.92
6/8-7/8
6
0.60-0.80
7/8-1
7 (negro)
0.00-0.60
Tabla de Gupta-Sproull para 8 valores
Se puede evitar el cálculo tabulando los po
sibles
resultados
EjV
alores enteros de x tal que
x / k∈[1.20, 1.40]
Inform
àtica gràfica. Universitat de
València
60
Curvas paramétricas
•P
roble
ma: aproximación de curvas suaves de form
as no regulares. (Estas curvas son muy útiles
en diseño).
•P
rim
era
apro
xim
ació
n: D
iscretizando
en polilíneas.
Des
venta
jasde esta aproximación.
•Se necesitan muchos vértices para aproximar una curva suave
•No perm
ite la modificación de la form
a de la curva, taque no es suave sino que se produce una
deform
ación
•S
egunda
apro
xim
ació
n: Usando cónicas
•Desventajas: A
veces es difícil calcular las cónicas
•que aproximen a una form
a determ
inada.
•Es imposible la modificación de la curva. H
ay que volver a
•calcular de nuevo.
Inform
àtica gràfica. Universitat de
València
61
Curvas paramétricas
(2)
•E
lecc
ión c
orr
ecta: Polinom
ios cúbicos (grado
3) P(x) = ax3+ bx2+ cx+
d
•¿Por qué no de mayor grado?. Los polinom
ios de m
ayor grado hacenaumentar los
parámetros de control y ta
mbién tienen m
ás m
áximos y m
ínimos locales, con lo que
es difícil de man
ejar.
•¿qué
form
a d
e r
epre
senta
ció
nelegimos?
•Explicita
(en función de una variable independiente) x ; y = f(x); z = g(x)
•Inconvenientes: E
s necesario utilizar varias expresiones m
atem
áticas para describir
partes de una m
isma figura geométrica: x = x; y = ±
√(R2–x2)
•Implícita(de la fo
rma F(x,y,z) = 0).
•Inconvenientes: P
ueden dar más soluciones de las qu
e queremos, por los que ha
y que añadir restricciones F(x,y) = x
2 + y
2 =1 x ≥0 (definición semicircunferencia).
Inform
àtica gràfica. Universitat de
València
62
Curvas paramétricas
(2)
•Form
a a
dec
uad
a: Ecuaciones paramétricas
x= x(t); y = y(t); z = z(t)
•Ejemplo: x = R cos(2*π*t); y = R sin(2*π*t);
•Nuestras curvas estarán com
puestas a
trozo
spor curvas param
étricas
de tipo
cúbico. L
a curva total es la unión de varias curvas param
étricas.
•Cada curva paramétricase define por:
•Q(t) = [x(t), y(t), z(t)}
•x(t) = a
xt3 + b
xt2 + c
xt+ d
x
•y(t) = a
yt3 + b
yt2 + c
yt+ d
ydonde 0 ≤
t ≤1 (E
cuac
iones
I)
•z(t) = a
zt3 + b
zt2 + c
zt+ d
z
•P
ropie
dad
esde
las curvas param
étricas:
•4 condiciones de contorno para determinar los cuatro coeficientes
•Pueden no estat
en un mismo plano. (Las cónicas están en un mismo plano porque
necesitan 3 puntos para de
finirse).
Inform
àtica gràfica. Universitat de
València
63
Curvas paramétricas
(3)
•Notación matricial
•ax
a y a
z
•T = [ t3 t2 t
1] C = b x
b y b
z
•c x
c yc z
d xd y
d zQ
(t) = T
C
Continuid
ad en los puntos de unión
La construción
de una curva suave se basas en la adición de tram
os de curvas
paramétricas
cúbicas En el punto de unión B se deben cumplir algunas
características
A
BC
Q(t
)S
(t)
Inform
àtica gràfica. Universitat de
València
64
Curvas paramétricas
(4)
•Se calcula la derivada de las curvas param
étricas
en dicho punto
•d(Q(t)) / dt=
Q’(t) = d
T/dt C = [ 3t2 2t 1 0 ] C =
•= [ 3
axt2+ 2 b
xt+ c
x3a
yt2+ 2 b
yt+ c
y3a
zt2+ 2 b
zt+ c
z]
•Se analizan las tangentes en el punto B. Q’(t B) y S’(t
B)
•Tip
os d
e continuid
ad
•Continuidad Geométrica cero (Continuidad G
0)
•Continuidad cero (Continuidad C
0)
•Las dos curvas se unen brúscam
ente
•Continuidad Geométrica Uno(ContinuidadG1)
•En el punto de unión las tangentes tienen la m
isma pendiente pero diferente m
ódulo
Inform
àtica gràfica. Universitat de
València
65
Curvas paramétricas
(5)
•Continuidad C1
•Las dos curvas tienen ta
ngentes de igual dirección y módulo
•Continuidad C2
•La segunda derivada tiene el m
ismo valor y dirección en el puntoB. E
sto implica que
conserva la curvatura de la curva.
•P
ara
el m
odela
do g
eom
étr
ico e
s s
ufici
ente
la c
ontinuid
ad G
1
No
Inform
àtica gràfica. Universitat de
València
66
Curvas paramétricas
(6)
•Vam
os a d
esar
rolla
r una form
ula
ciónadecuada de las curvas p
ara
poder
las
dis
eñar
y m
odific
ar g
ráfica
men
te y
de
man
era inte
ractiva
sen
cilla
•Para solucionar el sistema de ecuaciones x(t) y(t) z(t) de un tram
o, necesitamos
conocer cuatro condiciones de contorno para calcular los coeficientes. E
stas
condiciones son los puntos de inicio y final del tram
o y sus tangentes en dichos
puntos, q
ue nos servirán para im
poner la G
1en
tre tramos.
•Construyamos una notación donde quede de m
anifiesto esta inform
ación.
•Q
(t) = T
C =
T M
G d
onde C
= M
G
•M
es de dim
4x4 y se denomina
Mat
riz
Bas
e
•G es un vector de cuatro com
ponentes (cada una de ellas a su vez, d
e tres
dimensiones) y se llam
a ve
cto
r geo
métr
ico
•m
11m
12m
13m
14
G1
•m
21m
22m
23m
24
G2
•Q
(t) = [x(t
) y
(t) z
(t9] = [t3
t2
t 1
] m
31m
32m
33m
34
G3
•m
41m
42m
43m
44
G4
Inform
àtica gràfica. Universitat de
València
67
Curvas paramétricas
(7)
•x(t) = (
t3 m
11 + t2
m21
+ t m
31+ m
41) g
1x +
(t3
m12
+ t
2 m
22
+ t m
32+ m
42) g
2x+
•(t
3 m
31
+ t
2 m
32
+ t m
33+ m
34) g
3x+ (t3
m41
+ t
2 m
42
+ t m
43+ m
44) g
4x
•Vem
os que x(t) es una combinación lineal de los elem
entos de la m
atriz G.
•Estas fu
nciones peso se llaman Funci
ones
de M
ezcl
a(blendingfunctions).
•Las notaremos com
o B
= T
M
•Q
(t) = B
G
•Mientras que
Bre
coge
las c
arac
terí
stica
s gen
eral
esde una
clase de curvas, la
matriz G
(vector geom
étrico ) re
coge
las c
ondic
iones
de c
onto
rno d
e la
curv
a par
ticu
lar
Inform
àtica gràfica. Universitat de
València
68
Curvas paramétricas
(8)
•C
urv
as d
e H
erm
ite
•C
ondic
iones
de
conto
rno: Puntos inicial y final P
1 P4 y tangentes a esos
puntos
R1 R
4
•Si aplico las condiciones de contorno a las expresiones matriciales:
•x(
t=0)
= P
1x
•x(
t=1)
= P
4x
(ver
des
arro
llo)
2
-2
1
1
•
x’(t
=0)
= R
1x
===>
M
H=
-3
3
-2
-1•
x’(t
=1)
= R
4x
0
0
1
0•
1
0
0
0
•B
H= T
MH
= [
(2t
3-3
t2+1)
(-2
t3+3t
2 )
(t3-2
t2+t)
(t3
-t2 )
]
Inform
àtica gràfica. Universitat de
València
69
•Q
(t) = M
H B
H =
(2t3
-3t2
+1)
P1
+ (-2
t3+3t2
) P
4+ (t3
-2t2
+t)
R1
+ (t3
-t2 )
R4
Notar que la influencia de cada polinom
io de Hermite
componente de B
Htiene una influen
cia
glo
balsobre la curva. Aunque hay zonas de la misma donde tiene más peso.
Para rotar o escalar una curva basta con aplicar dicha transformación al vector de geometría G
H.
Esto es lo mismo que decir que la form
ulación matem
ática matricial que hem
os desarrollado es
invariante frente a rotaciones, escalados,…
Inform
àtica gràfica. Universitat de
València
70
Curvas paramétricas
(9)
•R
epre
senta
ción g
ráfica
:
•El control gráfico de las curvas de
Hermite
viene dado por los puntos P
1
P4
y por los vectores tangen
tes a
esos puntos
R1
R4
•No es un control dem
asiado intuitivo
ya que estam
os controlando
magnitudes vectoriales
•(R
1 y
R4)
•En el punto de unión de las curvas, las
tangentes deben de ser colineares
para que
se cumpla la condición G
1.
Inform
àtica gràfica. Universitat de
València
71
Curvas paramétricas
(10)
•Para imponer a dos curvas de Hermite
la
continuidad en el punto de unión, se debe
cumplir en los vectores geométricos:
•P
1
P4
•P
4
y
P7
•R
1
K
R4
con k>0
•R
4
R
7
Inform
àtica gràfica. Universitat de
València
72
Curvas paramétricas
(11)
•C
urv
as d
e B
èzie
r•
Las curvas de Bèzierse especifican mediante un vector geométrico que contiene los
puntos inicial y final de la curva (P1 yP4)y otros dos punto interm
edios (P2 yP3)que
junto con los anteriores determ
inan las tangentes en
los puntos inicial y final.
P1
P2 P3
P4
P1
P2P3
P4
Donde los puntos 2 y 3 no están sobre la curva.
La curva siempre cae en la envolvente convexa de
los puntos de control
Inform
àtica gràfica. Universitat de
València
73
Curvas paramétricas
(12)
•Por ta
nto: P
1•
GB= P
2•
P3
• •Se puede establecer una relación entre los puntos de control de Bèziery los vectores
Ride
Hermite
•R1= 3(P
2-P1) R
4= 3(P
4–P3) donde el factor 3 viene de imponer d
2Q(t)/dt
2 = 0
en los puntos (0,0) (1,0), (2,0), (3,0)
•Poniendo estas ecuaciones de form
a m
atricial
•P1
1 0
0 0 P
1G
H= P
4 = 0 0 0
1 P
2 = M
HBG
BR1 -3 3 0 0 P3
R4 0 0
-3 3 P
4
Inform
àtica gràfica. Universitat de
València
74
Curvas paramétricas
(13)
•De la expresión m
atricial anterior podemos obtener la m
atriz de blending
de Bèzier
•Q(t) = T M
HG
H= T M
H(M
HB G
B) = T (M
HM
HB ) G
B= T M
BG
B
•-1 3
-3 1
•M
B = M
HM
HB= 3
-6 3 0
•-3 3 0 0
•1 0
0 0
•Q
(t) = T
MB
GB
= (-t
3+ 3
t2-3
t + 1
)P1+ (3t3
-6t2
+3t ) P
2+ (-
3t3
+ 3
t2)P
3+ t3
P4
Polinom
ios de Bernstein
Inform
àtica gràfica. Universitat de
València
75
Curvas paramétricas
(14)
Polinom
ios de Bernstein
para curvas de bèzier
de grado
3 (n=3)
La influencia de cada polinom
io es total respecto del párám
etro
t aunque tiene un
rango de
valores donde es más notable.
Inform
àtica gràfica. Universitat de
València
76
Curvas paramétricas
(15)
•Los polinom
ios de Bernsteinpueden
definirse en la práctica desde n = 3.
•Así hay curvas con tres, cuatro, cinco
etcpuntos de control.
•En general, su expresión es:
Inform
àtica gràfica. Universitat de
València
77
Curvas paramétricas
(15)
Pro
pie
dad
es d
e la
s curv
as d
e B
èzie
r
•La continuidad G
1para las curvas de Bèzierimplica que dx
q(t)/dt
= dxr(t) / d
t
t=1 t=0
Esto significa que P
4–P3 = P
5–P4. E
s decir son colineales
•La suma de los polinom
ios de Bernsteinpara
cualquier valor de t es 1, no siendo ninguno
negativo. Esto justifica que la curva quede
encerrada en
la envolvente convexa de los
puntos de control
•Si P
1= P
4 entonces la curva es cerrada
•El control de la curva es global. L
a modificación
de uno de los puntos de control afecta a la fo
rma
de to
da la curva.
•Las curvas se com
portan suavemente a los
cambios de valor de los puntos de control
Inform
àtica gràfica. Universitat de
València
78
Algoritm
os de diseño de curvas(1)
Alg
ori
tmo d
e fu
erza
bru
ta
Este algoritmo dibujaría un curva
paramétricaa pa
rtir de las
(EC
UA
CIO
NE
S I)
Con este algoritmo no hay
posibilidad de modificar
interactivam
ente a la curva, ya que
hay que rede
finir cada uno de los
coeficientes de las ecuaciones
No es de ninguna utilidad para
diseño interactivo de curvas.
Un algoritmo de fuerza bruta iría calculando valores de x(t) y(t) z(t) para valores de
t ∈[0,1] con un p
asoδ= 1/n. δ0 = 0 ; δ1 = 1/n; δ2 = 2/n; ….; δn= 1
Cada vez que el vector geom
étrico varia, h
ay que recalcular los puntos de la curva
y redibujarla.
Inform
àtica gràfica. Universitat de
València
79
Algoritm
os de diseño de curvas(2)
Basándose en la idea de evaluar la curva en tram
os homogéneos δ, se im
plem
enta el
diseño de las curvas de Bèzier
glColor3f(1.0, 0.0, 0.0);
glFlush();
t=0;
while(t<=1){
pxold=px;
pyold=py;
pzold=pz;
uno_t_2= (1-t)*(1-t);
t_2 = t*t;
//se podria
crear un procedimiento mas eficiente basado en diferencias hacia delante
//ver Foley, para hacer los calculos
siguientes
px
= uno_t_2*(1-t)*G[0][0]+3*t*uno_t_2*G[1][0]+ 3*t_2*(1-t)*G[2][0]+t_2*t*G[3][0];
py
= uno_t_2*(1-t)*G[0][1]+3*t*uno_t_2*G[1][1]+ 3*t_2*(1-t)*G[2][1]+t_2*t*G[3][1];
pz
= uno_t_2*(1-t)*G[0][2]+3*t*uno_t_2*G[1][2]+ 3*t_2*(1-t)*G[2][2]+t_2*t*G[3][2];
if(primero==0){
glBegin(GL_POINTS);
glVertex3f(px,py,pz);
glEnd();
primero++;
} else{
glBegin(GL_LINES);
glVertex3f(pxold,pyold,pzold);
glVertex3f(px,py,pz);
glEnd();
} t+=1.0/n;
} glFlush();
}