primitivas gráficas como si tuviéramos como soporte un...

79
Informàtica gràfica. Universitat de València 1 Primitivas gráficas (X1,Y1, Z1) (X2, Y2, Z2) (X3,Y3, Z3)… geometría T. Afines T. Vista Recorte y T. Proyección Dibujado de primitivas (Rasterización) La pantalla de visualización es 2D. Al final hay que “dibujar” la escena como si tuviéramos como soporte un papel. Utilizando las primitivas de dibujado

Upload: lekhanh

Post on 29-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 2: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 3: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 4: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 5: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 6: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 7: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

?

Page 8: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 9: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 10: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 11: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 12: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 13: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 14: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 15: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 16: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 17: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 18: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 19: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 20: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 21: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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.

Page 22: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 23: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 24: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

Inform

àtica gràfica. Universitat de

València

24

Elipse com

o primitiva (2)

(Foley, Van Dam)

Page 25: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 26: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 27: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 28: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 29: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 30: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 31: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 32: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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.

Page 33: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 34: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 35: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 36: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 37: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 38: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 39: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 40: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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.

Page 41: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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:

Page 42: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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.

Page 43: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 44: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 45: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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))

Page 46: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

.

Page 47: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

Inform

àtica gràfica. Universitat de

València

47

Algoritm

o de la sem

illa (3)

Foley, Van Dam

Page 48: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 49: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 50: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 51: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 52: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 53: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 54: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 55: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 56: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 57: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 58: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 59: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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]

Page 60: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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.

Page 61: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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).

Page 62: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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).

Page 63: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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)

Page 64: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 65: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 66: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 67: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 68: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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 )

]

Page 69: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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,…

Page 70: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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.

Page 71: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 72: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 73: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 74: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 75: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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.

Page 76: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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:

Page 77: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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

Page 78: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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.

Page 79: Primitivas gráficas como si tuviéramos como soporte un ...informatica.uv.es/iiguia/2000/IG/tema2.pdf · Sistema de Coordenadas de Dispositivo Sistema de coordenadas Así una recta

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();

}