60
Gener˘ ari de segmente ¸ si cercuri: algoritmi cu doi pa¸ si Marian Ioan MUNTEANU Al.I.Cuza University of Iasi, Romania webpage: http://www.math.uaic.ro/munteanu 29 Octombrie 2012 Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 1 / 18

Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Generari de segmente si cercuri: algoritmi cu doipasi

Marian Ioan MUNTEANU

Al.I.Cuza University of Iasi, Romaniawebpage: http://www.math.uaic.ro/∼munteanu

29 Octombrie 2012

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 1 / 18

Page 2: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Cuprins

1 Algoritmul lui Wu pentru segmente de dreapta

2 Algoritmul lui Wu – Rokne pentru cercuri

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 2 / 18

Page 3: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Ideea este de a reduce (ınjumatati) numarul de pasi.

In 1987 X. Wu propune un algoritm care sa ımbunatateasca algoritmul luiBresenham de rasterizare a segmentelor de dreapta.

Pentru pante m ıntre 0 si 1 vom distinge doua situatii

a : 0 < m < 12 si b : 1

2 < m < 1.

Daca ın cazul algoritmului lui Bresenham o variabila de decizie stabileacare pixel va fi ales, ın cazul prezentului algoritm se va decide carepattern format din doi pixeli va fi ales la pasul urmator.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18

Page 4: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Ideea este de a reduce (ınjumatati) numarul de pasi.

In 1987 X. Wu propune un algoritm care sa ımbunatateasca algoritmul luiBresenham de rasterizare a segmentelor de dreapta.

Pentru pante m ıntre 0 si 1 vom distinge doua situatii

a : 0 < m < 12 si b : 1

2 < m < 1.

Daca ın cazul algoritmului lui Bresenham o variabila de decizie stabileacare pixel va fi ales, ın cazul prezentului algoritm se va decide carepattern format din doi pixeli va fi ales la pasul urmator.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18

Page 5: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Ideea este de a reduce (ınjumatati) numarul de pasi.

In 1987 X. Wu propune un algoritm care sa ımbunatateasca algoritmul luiBresenham de rasterizare a segmentelor de dreapta.

Pentru pante m ıntre 0 si 1 vom distinge doua situatii

a : 0 < m < 12 si b : 1

2 < m < 1.

Daca ın cazul algoritmului lui Bresenham o variabila de decizie stabileacare pixel va fi ales, ın cazul prezentului algoritm se va decide carepattern format din doi pixeli va fi ales la pasul urmator.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18

Page 6: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Ideea este de a reduce (ınjumatati) numarul de pasi.

In 1987 X. Wu propune un algoritm care sa ımbunatateasca algoritmul luiBresenham de rasterizare a segmentelor de dreapta.

Pentru pante m ıntre 0 si 1 vom distinge doua situatii

a : 0 < m < 12 si b : 1

2 < m < 1.

Daca ın cazul algoritmului lui Bresenham o variabila de decizie stabileacare pixel va fi ales, ın cazul prezentului algoritm se va decide carepattern format din doi pixeli va fi ales la pasul urmator.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18

Page 7: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

a) pattern 1 sau (pattern 2 sau pattern 3)

b) pattern 4 sau (pattern 2 sau pattern 3)

Sa presupunem ca m ∈(0, 12

).

Astfel, daca la un moment dat am ales pixelul P(xP , yP), atunci pecoloana xP + 2 putem alege (xP + 2, yP) sau (xP + 2, yP + 1).Sa se arate!!!!!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 4 / 18

Page 8: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

a) pattern 1 sau (pattern 2 sau pattern 3)

b) pattern 4 sau (pattern 2 sau pattern 3)

Sa presupunem ca m ∈(0, 12

).

Astfel, daca la un moment dat am ales pixelul P(xP , yP), atunci pecoloana xP + 2 putem alege (xP + 2, yP) sau (xP + 2, yP + 1).Sa se arate!!!!!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 4 / 18

Page 9: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

a) pattern 1 sau (pattern 2 sau pattern 3)

b) pattern 4 sau (pattern 2 sau pattern 3)

Sa presupunem ca m ∈(0, 12

).

Astfel, daca la un moment dat am ales pixelul P(xP , yP), atunci pecoloana xP + 2 putem alege (xP + 2, yP) sau (xP + 2, yP + 1).Sa se arate!!!!!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 4 / 18

Page 10: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

a) pattern 1 sau (pattern 2 sau pattern 3)

b) pattern 4 sau (pattern 2 sau pattern 3)

Sa presupunem ca m ∈(0, 12

).

Astfel, daca la un moment dat am ales pixelul P(xP , yP), atunci pecoloana xP + 2 putem alege (xP + 2, yP) sau (xP + 2, yP + 1).Sa se arate!!!!!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 4 / 18

Page 11: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

a) pattern 1 sau (pattern 2 sau pattern 3)

b) pattern 4 sau (pattern 2 sau pattern 3)

Sa presupunem ca m ∈(0, 12

).

Astfel, daca la un moment dat am ales pixelul P(xP , yP), atunci pecoloana xP + 2 putem alege (xP + 2, yP) sau (xP + 2, yP + 1).Sa se arate!!!!!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 4 / 18

Page 12: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

I. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP), atunci sigur pecoloana xp + 1 pixelul ales va fi (xP + 1, yP).

Prin urmare avem pattern 1, adica situatia E − E (est-est).

Variabila de decizie (din algoritmul lui Bresenham) pe coloana xP + 2 este

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(< 0).

Varibila (de decizie) intermediara este

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 5 / 18

Page 13: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

I. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP), atunci sigur pecoloana xp + 1 pixelul ales va fi (xP + 1, yP).

Prin urmare avem pattern 1, adica situatia E − E (est-est).

Variabila de decizie (din algoritmul lui Bresenham) pe coloana xP + 2 este

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(< 0).

Varibila (de decizie) intermediara este

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 5 / 18

Page 14: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

I. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP), atunci sigur pecoloana xp + 1 pixelul ales va fi (xP + 1, yP).

Prin urmare avem pattern 1, adica situatia E − E (est-est).

Variabila de decizie (din algoritmul lui Bresenham) pe coloana xP + 2 este

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(< 0).

Varibila (de decizie) intermediara este

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 5 / 18

Page 15: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

I. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP), atunci sigur pecoloana xp + 1 pixelul ales va fi (xP + 1, yP).

Prin urmare avem pattern 1, adica situatia E − E (est-est).

Variabila de decizie (din algoritmul lui Bresenham) pe coloana xP + 2 este

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(< 0).

Varibila (de decizie) intermediara este

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 5 / 18

Page 16: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

I. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP), atunci sigur pecoloana xp + 1 pixelul ales va fi (xP + 1, yP).

Prin urmare avem pattern 1, adica situatia E − E (est-est).

Variabila de decizie (din algoritmul lui Bresenham) pe coloana xP + 2 este

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(< 0).

Varibila (de decizie) intermediara este

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 5 / 18

Page 17: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

II. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP + 1), atunci avemuna din cele doua situatii: pattern 2 sau pattern 3.

• pentru pattern 2 (E − NE ) variabila de decizie este:

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(> 0)

iar variabila intermediara

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a < a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 6 / 18

Page 18: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

II. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP + 1), atunci avemuna din cele doua situatii: pattern 2 sau pattern 3.

• pentru pattern 2 (E − NE ) variabila de decizie este:

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(> 0)

iar variabila intermediara

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a < a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 6 / 18

Page 19: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

II. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP + 1), atunci avemuna din cele doua situatii: pattern 2 sau pattern 3.

• pentru pattern 2 (E − NE ) variabila de decizie este:

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(> 0)

iar variabila intermediara

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a < a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 6 / 18

Page 20: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

II. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP + 1), atunci avemuna din cele doua situatii: pattern 2 sau pattern 3.

• pentru pattern 2 (E − NE ) variabila de decizie este:

d = F

(xP + 2, yP +

1

2

)= axP + byP + c + 2a +

b

2(> 0)

iar variabila intermediara

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(< 0).

Avem d = d ′ + a < a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 6 / 18

Page 21: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

II. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP + 1), atunci avemuna din cele doua situatii: pattern 2 sau pattern 3.

• pentru pattern 3 (NE − E ) variabila de decizie este

d = F

(xP + 2, yP +

3

2

)= axP + byP + c + 2a + b +

b

2(< 0)

iar variabila intermediara

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(> 0).

Avem d = d ′ + a + b > a + b.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 7 / 18

Page 22: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

II. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP + 1), atunci avemuna din cele doua situatii: pattern 2 sau pattern 3.

• pentru pattern 3 (NE − E ) variabila de decizie este

d = F

(xP + 2, yP +

3

2

)= axP + byP + c + 2a + b +

b

2(< 0)

iar variabila intermediara

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(> 0).

Avem d = d ′ + a + b > a + b.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 7 / 18

Page 23: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

II. Daca pixelul ales pe coloana xP + 2 este (xP + 2, yP + 1), atunci avemuna din cele doua situatii: pattern 2 sau pattern 3.

• pentru pattern 3 (NE − E ) variabila de decizie este

d = F

(xP + 2, yP +

3

2

)= axP + byP + c + 2a + b +

b

2(< 0)

iar variabila intermediara

d ′ = F

(xP + 1, yP +

1

2

)= axP + bxP + c + a +

b

2(> 0).

Avem d = d ′ + a + b > a + b.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 7 / 18

Page 24: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Astfel, daca notam D = axP + byP + c + 2a + b2 avem:

I. pentru pattern 1: D < 0

II. • pentru pattern 2: D > 0 si D < a

• pentru pattern 3: D = d − b > a > 0.

Aratati ca D < −b!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 8 / 18

Page 25: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Astfel, daca notam D = axP + byP + c + 2a + b2 avem:

I. pentru pattern 1: D < 0

II. • pentru pattern 2: D > 0 si D < a

• pentru pattern 3: D = d − b > a > 0.

Aratati ca D < −b!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 8 / 18

Page 26: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Astfel, daca notam D = axP + byP + c + 2a + b2 avem:

I. pentru pattern 1: D < 0

II. • pentru pattern 2: D > 0 si D < a

• pentru pattern 3: D = d − b > a > 0.

Aratati ca D < −b!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 8 / 18

Page 27: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Astfel, daca notam D = axP + byP + c + 2a + b2 avem:

I. pentru pattern 1: D < 0

II. • pentru pattern 2: D > 0 si D < a

• pentru pattern 3: D = d − b > a > 0.

Aratati ca D < −b!

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 8 / 18

Page 28: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Sa vedem cresterile:

I. Dnew = F (xP + 4, yP + 12) = Dold + 2a

II. Dnew = F (xP + 4, yP + 32) = Dold + 2a + b.

Valoarea initiala a lui D este

Dstart = F

(x0 + 2, y0 +

1

2

)= 2a +

b

2.

Pentru a nu lucra cu fractii, se va multiplica totul cu 2:

Dstart = 4a + b si cresterile incr1 = 4a ; incr2 = 2(2a + b), iarcomparatia, ın cazul al II-lea, se va face cu 2a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 9 / 18

Page 29: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Sa vedem cresterile:

I. Dnew = F (xP + 4, yP + 12) = Dold + 2a

II. Dnew = F (xP + 4, yP + 32) = Dold + 2a + b.

Valoarea initiala a lui D este

Dstart = F

(x0 + 2, y0 +

1

2

)= 2a +

b

2.

Pentru a nu lucra cu fractii, se va multiplica totul cu 2:

Dstart = 4a + b si cresterile incr1 = 4a ; incr2 = 2(2a + b), iarcomparatia, ın cazul al II-lea, se va face cu 2a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 9 / 18

Page 30: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Sa vedem cresterile:

I. Dnew = F (xP + 4, yP + 12) = Dold + 2a

II. Dnew = F (xP + 4, yP + 32) = Dold + 2a + b.

Valoarea initiala a lui D este

Dstart = F

(x0 + 2, y0 +

1

2

)= 2a +

b

2.

Pentru a nu lucra cu fractii, se va multiplica totul cu 2:

Dstart = 4a + b si cresterile incr1 = 4a ; incr2 = 2(2a + b), iarcomparatia, ın cazul al II-lea, se va face cu 2a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 9 / 18

Page 31: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Sa vedem cresterile:

I. Dnew = F (xP + 4, yP + 12) = Dold + 2a

II. Dnew = F (xP + 4, yP + 32) = Dold + 2a + b.

Valoarea initiala a lui D este

Dstart = F

(x0 + 2, y0 +

1

2

)= 2a +

b

2.

Pentru a nu lucra cu fractii, se va multiplica totul cu 2:

Dstart = 4a + b si cresterile incr1 = 4a ; incr2 = 2(2a + b), iarcomparatia, ın cazul al II-lea, se va face cu 2a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 9 / 18

Page 32: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu

Sa vedem cresterile:

I. Dnew = F (xP + 4, yP + 12) = Dold + 2a

II. Dnew = F (xP + 4, yP + 32) = Dold + 2a + b.

Valoarea initiala a lui D este

Dstart = F

(x0 + 2, y0 +

1

2

)= 2a +

b

2.

Pentru a nu lucra cu fractii, se va multiplica totul cu 2:

Dstart = 4a + b si cresterile incr1 = 4a ; incr2 = 2(2a + b), iarcomparatia, ın cazul al II-lea, se va face cu 2a.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 9 / 18

Page 33: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul ın C

Algoritmul pentru panta m ∈ (0, 1/2):

int dy = y1 − y0;int dx = x1 − x0;int d = 4 ∗ dy − dx;int incr1 = 4 ∗ dy;int incr2 = 2 ∗ (2∗dy − dx);int u = 2 ∗ dy;int x = x0, y = y0;putpixel(x, y, color);

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 10 / 18

Page 34: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul ın C

while (x<x1){

if (d<0) { /* se alege E-E */d += incr1;x++; putpixel(x, y, color); x++; putpixel(x, y, color);}

else {if (d<u) { /* se alege E-NE */

x++; putpixel(x, y, color); x++; y++; putpixel(x, y, color);}

else { /* se alege NE-E */x++; y++; putpixel(x, y, color); x++; putpixel(x, y, color);}

d += incr2;} /* end else */} /* end while */

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 11 / 18

Page 35: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu pentru cercuri

Vom descrie ın continuare un algoritm cu doi pasi pentru rasterizareacercurilor.

Vom considera cercul cu centrul ın origine x2 + y2 = R2 si, la fel ca ıncapitolul precedent, vom analiza doar al doilea octant, anume portiuneadin primul cadran caracterizata de relatia x ≤ y .

Fie urmatoarele 4 sabloane:

pattern 1 = E − E,

pattern 2 = E − SE,

pattern 3 = SE − E,

pattern 4 = SE − SE.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 12 / 18

Page 36: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu pentru cercuri

Vom descrie ın continuare un algoritm cu doi pasi pentru rasterizareacercurilor.

Vom considera cercul cu centrul ın origine x2 + y2 = R2 si, la fel ca ıncapitolul precedent, vom analiza doar al doilea octant, anume portiuneadin primul cadran caracterizata de relatia x ≤ y .

Fie urmatoarele 4 sabloane:

pattern 1 = E − E,

pattern 2 = E − SE,

pattern 3 = SE − E,

pattern 4 = SE − SE.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 12 / 18

Page 37: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Fie d variabila de decizie (pentru xP + 2, unde P este un punct ales la unmoment dat) si d ′ variabila de decizie intermediara (i.e. pentru xP + 1).

Atunci◦ pattern 1 ⇐⇒ d ′ < 0 si d < 0◦ pattern 2 ⇐⇒ d ′ < 0 si d > 0◦ pattern 3 ⇐⇒ d ′ > 0 si d < 0◦ pattern 4 ⇐⇒ d ′ > 0 si d > 0.

Daca notamD = x2P + 4xP + y2P − yP + 4− R2

avem mai ıntai ca D + 14 < 0 ⇐⇒ D < 0 (deoarece D ∈ Z) si ın aceasta

situatie se va alege pattern 1.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 13 / 18

Page 38: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Fie d variabila de decizie (pentru xP + 2, unde P este un punct ales la unmoment dat) si d ′ variabila de decizie intermediara (i.e. pentru xP + 1).

Atunci◦ pattern 1 ⇐⇒ d ′ < 0 si d < 0◦ pattern 2 ⇐⇒ d ′ < 0 si d > 0◦ pattern 3 ⇐⇒ d ′ > 0 si d < 0◦ pattern 4 ⇐⇒ d ′ > 0 si d > 0.

Daca notamD = x2P + 4xP + y2P − yP + 4− R2

avem mai ıntai ca D + 14 < 0 ⇐⇒ D < 0 (deoarece D ∈ Z) si ın aceasta

situatie se va alege pattern 1.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 13 / 18

Page 39: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Fie d variabila de decizie (pentru xP + 2, unde P este un punct ales la unmoment dat) si d ′ variabila de decizie intermediara (i.e. pentru xP + 1).

Atunci◦ pattern 1 ⇐⇒ d ′ < 0 si d < 0◦ pattern 2 ⇐⇒ d ′ < 0 si d > 0◦ pattern 3 ⇐⇒ d ′ > 0 si d < 0◦ pattern 4 ⇐⇒ d ′ > 0 si d > 0.

Daca notamD = x2P + 4xP + y2P − yP + 4− R2

avem mai ıntai ca D + 14 < 0 ⇐⇒ D < 0 (deoarece D ∈ Z) si ın aceasta

situatie se va alege pattern 1.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 13 / 18

Page 40: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Variabila intermediara este

d ′ = D − 2xP − 3 +1

4

iar pentru d avem:

◦ pentru pattern 2: d = D + 14

◦ pentru pattern 3 si 4: d = D − 2yP + 2 + 14 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 14 / 18

Page 41: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Variabila intermediara este

d ′ = D − 2xP − 3 +1

4

iar pentru d avem:

◦ pentru pattern 2: d = D + 14

◦ pentru pattern 3 si 4: d = D − 2yP + 2 + 14 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 14 / 18

Page 42: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Variabila intermediara este

d ′ = D − 2xP − 3 +1

4

iar pentru d avem:

◦ pentru pattern 2: d = D + 14

◦ pentru pattern 3 si 4: d = D − 2yP + 2 + 14 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 14 / 18

Page 43: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Astfel:

• pentru pattern 2: D < 2xP + 3− 14 ⇐⇒ D < 2xP + 3

D + 14 > 0 ⇐⇒ D ≥ 0

• pentru pattern 3: D > 2xP + 3− 14 ⇐⇒ D ≥ 2xP + 3

D − 2yP + 2 + 14 < 0 ⇐⇒ D < 2yP − 2

• pentru pattern 4: D > 2xP + 3− 14 ⇐⇒ D ≥ 2xP + 3

D − 2yP + 2 + 14 > 0 ⇐⇒ D ≥ 2yP − 2.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 15 / 18

Page 44: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Astfel:

• pentru pattern 2: D < 2xP + 3− 14 ⇐⇒ D < 2xP + 3

D + 14 > 0 ⇐⇒ D ≥ 0

• pentru pattern 3: D > 2xP + 3− 14 ⇐⇒ D ≥ 2xP + 3

D − 2yP + 2 + 14 < 0 ⇐⇒ D < 2yP − 2

• pentru pattern 4: D > 2xP + 3− 14 ⇐⇒ D ≥ 2xP + 3

D − 2yP + 2 + 14 > 0 ⇐⇒ D ≥ 2yP − 2.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 15 / 18

Page 45: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Astfel:

• pentru pattern 2: D < 2xP + 3− 14 ⇐⇒ D < 2xP + 3

D + 14 > 0 ⇐⇒ D ≥ 0

• pentru pattern 3: D > 2xP + 3− 14 ⇐⇒ D ≥ 2xP + 3

D − 2yP + 2 + 14 < 0 ⇐⇒ D < 2yP − 2

• pentru pattern 4: D > 2xP + 3− 14 ⇐⇒ D ≥ 2xP + 3

D − 2yP + 2 + 14 > 0 ⇐⇒ D ≥ 2yP − 2.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 15 / 18

Page 46: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Notam: u = 2xP + 3 si v = 2yP − 2.

Rezulta:

D :

∣∣∣∣∣∣∣∣∣∣∣∣∣∣

−→ D < 0 ⇐⇒ pattern 1

−→ D ≥ 0 :

∣∣∣∣∣∣∣∣∣∣−→ D < u ⇐⇒ pattern 2

−→ D ≥ u :

∣∣∣∣∣∣−→ D < v ⇐⇒ pattern 3

−→ D ≥ v ⇐⇒ pattern 4 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 16 / 18

Page 47: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Notam: u = 2xP + 3 si v = 2yP − 2.

Rezulta:

D :

∣∣∣∣∣∣∣∣∣∣∣∣∣∣

−→ D < 0 ⇐⇒ pattern 1

−→ D ≥ 0 :

∣∣∣∣∣∣∣∣∣∣−→ D < u ⇐⇒ pattern 2

−→ D ≥ u :

∣∣∣∣∣∣−→ D < v ⇐⇒ pattern 3

−→ D ≥ v ⇐⇒ pattern 4 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 16 / 18

Page 48: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Notam: u = 2xP + 3 si v = 2yP − 2.

Rezulta:

D :

∣∣∣∣∣∣∣∣∣∣∣∣∣∣

−→ D < 0 ⇐⇒ pattern 1

−→ D ≥ 0 :

∣∣∣∣∣∣∣∣∣∣−→ D < u ⇐⇒ pattern 2

−→ D ≥ u :

∣∣∣∣∣∣−→ D < v ⇐⇒ pattern 3

−→ D ≥ v ⇐⇒ pattern 4 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 16 / 18

Page 49: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Notam: u = 2xP + 3 si v = 2yP − 2.

Rezulta:

D :

∣∣∣∣∣∣∣∣∣∣∣∣∣∣

−→ D < 0 ⇐⇒ pattern 1

−→ D ≥ 0 :

∣∣∣∣∣∣∣∣∣∣−→ D < u ⇐⇒ pattern 2

−→ D ≥ u :

∣∣∣∣∣∣−→ D < v ⇐⇒ pattern 3

−→ D ≥ v ⇐⇒ pattern 4 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 16 / 18

Page 50: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Notam: u = 2xP + 3 si v = 2yP − 2.

Rezulta:

D :

∣∣∣∣∣∣∣∣∣∣∣∣∣∣

−→ D < 0 ⇐⇒ pattern 1

−→ D ≥ 0 :

∣∣∣∣∣∣∣∣∣∣−→ D < u ⇐⇒ pattern 2

−→ D ≥ u :

∣∣∣∣∣∣−→ D < v ⇐⇒ pattern 3

−→ D ≥ v ⇐⇒ pattern 4 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 16 / 18

Page 51: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Notam: u = 2xP + 3 si v = 2yP − 2.

Rezulta:

D :

∣∣∣∣∣∣∣∣∣∣∣∣∣∣

−→ D < 0 ⇐⇒ pattern 1

−→ D ≥ 0 :

∣∣∣∣∣∣∣∣∣∣−→ D < u ⇐⇒ pattern 2

−→ D ≥ u :

∣∣∣∣∣∣−→ D < v ⇐⇒ pattern 3

−→ D ≥ v ⇐⇒ pattern 4 .

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 16 / 18

Page 52: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Cresterile:

? pattern 1: D+ = delta1, u+ = 4,unde delta1 = 4xP + 12

? pattern 2(3): D+ = delta2, u+ = 4, v− = 2,unde delta2 = 4xP − 2yP + 14

? pattern 4: D+ = delta4, u+ = 4, v− = 4,unde delta4 = 4xP − 4yP + 18.

Asa cum ne asteptam (cercul fiind dat de o functie polinomiala de gradulal doilea), cresterile la primul pas depind de punctul curent. Prin urmarevom calcula diferentele de ordinul al doilea.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 17 / 18

Page 53: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Cresterile:

? pattern 1: D+ = delta1, u+ = 4,unde delta1 = 4xP + 12

? pattern 2(3): D+ = delta2, u+ = 4, v− = 2,unde delta2 = 4xP − 2yP + 14

? pattern 4: D+ = delta4, u+ = 4, v− = 4,unde delta4 = 4xP − 4yP + 18.

Asa cum ne asteptam (cercul fiind dat de o functie polinomiala de gradulal doilea), cresterile la primul pas depind de punctul curent. Prin urmarevom calcula diferentele de ordinul al doilea.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 17 / 18

Page 54: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Cresterile:

? pattern 1: D+ = delta1, u+ = 4,unde delta1 = 4xP + 12

? pattern 2(3): D+ = delta2, u+ = 4, v− = 2,unde delta2 = 4xP − 2yP + 14

? pattern 4: D+ = delta4, u+ = 4, v− = 4,unde delta4 = 4xP − 4yP + 18.

Asa cum ne asteptam (cercul fiind dat de o functie polinomiala de gradulal doilea), cresterile la primul pas depind de punctul curent. Prin urmarevom calcula diferentele de ordinul al doilea.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 17 / 18

Page 55: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Cresterile:

? pattern 1: D+ = delta1, u+ = 4,unde delta1 = 4xP + 12

? pattern 2(3): D+ = delta2, u+ = 4, v− = 2,unde delta2 = 4xP − 2yP + 14

? pattern 4: D+ = delta4, u+ = 4, v− = 4,unde delta4 = 4xP − 4yP + 18.

Asa cum ne asteptam (cercul fiind dat de o functie polinomiala de gradulal doilea), cresterile la primul pas depind de punctul curent. Prin urmarevom calcula diferentele de ordinul al doilea.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 17 / 18

Page 56: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Astfel:

� pentru pattern 1: delta1+ = 8, delta2+ = 8, delta4+ = 8

� pentru pattern 2 (3): delta1+ = 8, delta2+ = 10, delta4+ = 12

� pentru pattern 4: delta1+ = 8, delta 2+ = 12, delta 4+ = 16.

Valorile initiale se calculeaza pentru punctul (0,R) si astfel:

Dstart = 4− R, ustart = 3, vstart = 2R − 2

delta1start = 12, delta2start = 14− 2R, delta4start = 18− 4R.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 18 / 18

Page 57: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Astfel:

� pentru pattern 1: delta1+ = 8, delta2+ = 8, delta4+ = 8

� pentru pattern 2 (3): delta1+ = 8, delta2+ = 10, delta4+ = 12

� pentru pattern 4: delta1+ = 8, delta 2+ = 12, delta 4+ = 16.

Valorile initiale se calculeaza pentru punctul (0,R) si astfel:

Dstart = 4− R, ustart = 3, vstart = 2R − 2

delta1start = 12, delta2start = 14− 2R, delta4start = 18− 4R.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 18 / 18

Page 58: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Astfel:

� pentru pattern 1: delta1+ = 8, delta2+ = 8, delta4+ = 8

� pentru pattern 2 (3): delta1+ = 8, delta2+ = 10, delta4+ = 12

� pentru pattern 4: delta1+ = 8, delta 2+ = 12, delta 4+ = 16.

Valorile initiale se calculeaza pentru punctul (0,R) si astfel:

Dstart = 4− R, ustart = 3, vstart = 2R − 2

delta1start = 12, delta2start = 14− 2R, delta4start = 18− 4R.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 18 / 18

Page 59: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Astfel:

� pentru pattern 1: delta1+ = 8, delta2+ = 8, delta4+ = 8

� pentru pattern 2 (3): delta1+ = 8, delta2+ = 10, delta4+ = 12

� pentru pattern 4: delta1+ = 8, delta 2+ = 12, delta 4+ = 16.

Valorile initiale se calculeaza pentru punctul (0,R) si astfel:

Dstart = 4− R, ustart = 3, vstart = 2R − 2

delta1start = 12, delta2start = 14− 2R, delta4start = 18− 4R.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 18 / 18

Page 60: Generari de segmente si cercuri: algoritmi cu doi pasimunteanu/cursuri/Curs_04_an3.pdfMarian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 3 / 18 Algoritmul lui

Algoritmul lui Wu – Rokne pentru cercuri

Astfel:

� pentru pattern 1: delta1+ = 8, delta2+ = 8, delta4+ = 8

� pentru pattern 2 (3): delta1+ = 8, delta2+ = 10, delta4+ = 12

� pentru pattern 4: delta1+ = 8, delta 2+ = 12, delta 4+ = 16.

Valorile initiale se calculeaza pentru punctul (0,R) si astfel:

Dstart = 4− R, ustart = 3, vstart = 2R − 2

delta1start = 12, delta2start = 14− 2R, delta4start = 18− 4R.

Marian Ioan MUNTEANU (UAIC) Curs 4: Algoritmul lui Wu 29 Octombrie 2012 18 / 18