Algoritmos Geométricos
description
Transcript of Algoritmos Geométricos
![Page 1: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/1.jpg)
Algoritmos Geométricos
Prof. Herondino
![Page 2: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/2.jpg)
1. Principais técnicas e algoritmos As principais técnicas e algoritmos
utilizados na implementação das diversas funções de um sistema de gerência de bancos de dados espaciais (SGDBE), em especial as operações sobre representações vetoriais (pontos, linhas e polígonos).
![Page 3: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/3.jpg)
Imagem Digital
Processo de digitalização ( Gonzales e Woods, 2002)
![Page 4: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/4.jpg)
1.1Ponto Um ponto é um par ordenado (x, y) de
coordenadas espaciais
Representação matemática do pixel digital ( Gonzales e Woods, 2002)
![Page 5: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/5.jpg)
Representação da Imagem Digital
Fonte: Gonzales e Woods, 2002
![Page 6: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/6.jpg)
1.2 Linha poligonal Sejam n pontos no plano.
Exemplo:
1210 ,...,,, nvvvv
![Page 7: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/7.jpg)
1.2 Linha poligonal Sejam n pontos no plano. Sejam
, uma sequencia de n – 1 segmentos, conectando estes pontos.
Exemplo:
1210 ,...,,, nvvvv
122211100 ,...,, nnn vvsvvsvvs
![Page 8: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/8.jpg)
1.2 Linha poligonal Estes segmentos formam uma poligonal L se, e
somente se, (1) a interseção de segmentos consecutivos é
apenas o ponto extremo compartilhado por eles (i.e. , ),
(2) segmentos não consecutivos não se interceptam (i.e., Ø para todo i e j tais que ) , e
(3) , ou seja, a poligonal não é fechada.
11 iii vss
ji ss 1ij10 nvv
![Page 9: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/9.jpg)
1.3 Polígono Um polígono é a região do plano limitada por
uma linha poligonal fechada A definição acima implica que, apenas
invertendo a condição (3) da definição de linha poligonal, temos um polígono (i. e., ).
10 nvv
![Page 10: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/10.jpg)
1.4 Tipos abstratos de dados Estas três entidades geométricas básicas
podem ser definidas em uma linguagem de programação usando tipos abstratos de dados.
![Page 11: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/11.jpg)
1.5 Algoritmos Básicos 1.5.1 Área do Triângulo
![Page 12: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/12.jpg)
1.5.2 Coordenadas Baricêntricas Para determinar se um determinado ponto
pertence ou não a um triângulo, utiliza-se um método baseado em coordenadas baricêntricas
Sinais das Coordenadas Baricêntricas indica a região p do plano
![Page 13: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/13.jpg)
1.5.2 Coordenadas Baricêntricas Cada ponto p do plano pode ser escrito na
forma:
Em que e Os valores são obtidos usando a
regra de Cramer, expressos em áreas de triângulos de vértices
e .
A análise do sinal das coordenadas baricêntricas indica a região do plano em que se encontra p, em relação ao triângulo .
332211 pppp
321 1321 321, e
321,, pppp
321 ppp
![Page 14: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/14.jpg)
1.5.3 Interseção de Retângulos O uso do retângulo envolvente mínimo (REM)
é umaestratégias que procura evitar, o uso de
procedimentos computacionalmente caros. O REM é o menor retângulo com lados
paralelos aos eixos coordenados que contém a geometria do objeto
Interseção de REMs REMs Disjuntos
![Page 15: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/15.jpg)
1.5.3 Interseção de Retângulos
Interseção de retângulos envolventes mínimos
![Page 16: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/16.jpg)
1.5.4 Interseção de dois segmentos de reta A solução consiste em testar se os pontos
e estão de lados opostos do segmento formado por e também se e estão de lados opostos do segmento formado por .
21 pp43 pp
43 pp21pp
![Page 17: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/17.jpg)
1.5.4 Interseção de dois segmentos de reta A solução consiste em
avaliar o sinal da área dos triângulos formados por e
Se os sinais forem contrários, significa que os pontos estão de lados opostos.
321 ppp 421 ppp
![Page 18: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/18.jpg)
Exemplo 1
![Page 19: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/19.jpg)
O ponto de interseção Dados dois segmentos formados pelos pontos
e , respectivamente, e com
o ponto de interseção entre eles é dado por:
Esta igualdade dá origem a um sistema com duas equações e duas incógnitas (u e v):
ou
21pp43 pp
),(),(),,(),,( 444333222111 yxpeyxpyxpyxp
)()( 343121 ppvpppup
)()(
121secint
121secint
yyuyyxxuxx
e
e
)()(
343secint
343secint
yyvyyxxvxx
e
e
![Page 20: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/20.jpg)
O ponto de interseção Desenvolvendo o sistema, temos:
Calculados os parâmetros u e v, podemos determinar o ponto de interseção
))(())(())(())((
12341234
31343134
yyxxxxyyxxyyyyxxu
))(())(())(())((
12341234
31123112
yyxxxxyyxxyyyyxxv
![Page 21: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/21.jpg)
Exemplo: Calculando pelo u
))(())(())(())((
12341234
31343134
yyxxxxyyxxyyyyxxu
![Page 22: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/22.jpg)
Exemplo: Substituindo o u
)()(
121secint
121secint
yyuyyxxuxx
e
e
![Page 23: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/23.jpg)
Exemplo 2 Mostre que os pontos estão de lados opostos e encontre o ponto de interseção.21pp
![Page 24: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/24.jpg)
Análise do parâmetro u e v Se o denominador for zero, as duas linhas são
paralelas.
![Page 25: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/25.jpg)
Análise do parâmetro u e v Se além do denominador os numeradores de
ambos os parâmetros também forem zero, então as duas linhas são coincidentes.
![Page 26: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/26.jpg)
1.5.5 Área de polígonos A área de um polígono pode ser calculada em
tempo linear com relação ao número de vértices, usando um somatório simples, baseado na soma de áreas de triângulos formados entre cada par de vértices consecutivos e a origem do sistema de coordenadas (O'Rourke, 1998):
)()(21)( 11 iiii yyxxPA
![Page 27: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/27.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
![Page 28: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/28.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
![Page 29: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/29.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
)1,1(),( 112 yxp
![Page 30: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/30.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
)1,1(),( 112 yxp
)5,1(),( 223 yxp
![Page 31: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/31.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
)1,1(),( 112 yxp
)5,1(),( 223 yxp
)1,4(),(),( 00334 yxyxp
![Page 32: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/32.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
)1,1(),( 112 yxp
)5,1(),( 223 yxp
)1,4(),(),( 00334 yxyxp
........)()(21)( 0110 yyxxPA
![Page 33: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/33.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
)1,1(),( 112 yxp
)5,1(),( 223 yxp
)1,4(),(),( 00334 yxyxp
...)()()()(21)( 12210110 yyxxyyxxPA
![Page 34: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/34.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
)1,1(),( 112 yxp
)5,1(),( 223 yxp
)1,4(),(),( 00334 yxyxp
)()()()()()(21)( 233212210110 yyxxyyxxyyxxPA
![Page 35: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/35.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
)1,1(),( 112 yxp
)5,1(),( 223 yxp
)1,4(),(),( 00334 yxyxp
)()()()()()(21)( 233212210110 yyxxyyxxyyxxPA
)51()41()15()11()11()14(21)( PA
![Page 36: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/36.jpg)
Exemplo:
1
011 )()(
21)(
ni
iiiii yyxxPA
)1,4(),( 001 yxp
)1,1(),( 112 yxp
)5,1(),( 223 yxp
)1,4(),(),( 00334 yxyxp
)()()()()()(21)( 233212210110 yyxxyyxxyyxxPA
)51()41()15()11()11()14(21)( PA
)4(54204(21)( PA
![Page 37: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/37.jpg)
Exemplo 2:
1
011 )()(
21)(
ni
iiiii yyxxPA
![Page 38: Algoritmos Geométricos](https://reader035.fdocument.pub/reader035/viewer/2022062410/56815f66550346895dce6246/html5/thumbnails/38.jpg)
Referência Bibliográfica M. Casanova, G. Câmara, C. Davis, L. Vinhas,
G. Ribeiro (org), “Bancos de Dados Geográficos”. São José dos Campos, MundoGEO, 2005.
Gonzalez, R. C.; Woods, R. E. Processamento de imagens digitais. São Paulo: Edgard Blücher Ltda, 2003.