===== Capítulo 2 - Algorítmos geométricos e relacionamentos topológicos ====== * **Definições**: * Cada objeto vetorial é codificado usando um ou mais pares de coordenada. * __Ponto__: é um par ordenado (x, y) de coordenadas espaciais. * __Reta__: linha que une dois pontos. * __Linha poligonal__: composta por uma seqüência de segmentos de reta. * __Polígono__: região do plano limitada por uma linha poligonal fechada. Divide o plano em interior, que convencionalmente inclui a fronteira (a poligonal fechada) e o exterior. * __Retângulo envolvente mínimo (REM)__: é o menor retângulo com lados alinhados aos eixos x e y que contém a geometria do objeto. É muito usado para diminuir o custo computacional das operações. * **Algorítmos**: * __Área de um triângulo__: metade da área de um paralelogramo. * __Coordenadas baricêntricas__: determina se ponto pertence ou não a um triângulo. * __Interseção de retângulos__: antes de executar o algoritmo de determinação da interseção entre dois polígonos, comparamos seus REM diretamente. Caso os REM tenham alguma interseção, é possível que os polígonos se interceptem. * __Interseção de retas__: testar se pontos p1 e p2 estão de lados opostos a p3p4 e vice-versa. * __Área de polígono__: calculada em 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. * __Centróide de um polígono__: obtido a partir da sua divisão em triângulos, calculando em seguida a média ponderada dos centros de gravidade dos triângulos usando suas áreas como peso. O centro de gravidade de cada triângulo é simplesmente a média das coordenadas de seus vértices. * __Ponto em polígono__: determina se um ponto está no interior de um polígono. Esticar reta a partir do ponto em qq direção, se qtd par de cruzamentos, está fora, se ímpar, está dentro. * __Simplificação de poligonais (linhas)__: Linhas correspondem a cerca de 80% do volume de dados vetoriais. O primeiro objetivo para algoritmos de simplificação de linhas é “limpar” (weed) a poligonal de pontos claramente desnecessários para visualização gerando nova versão da linha. Consiste em obter uma representação mais grosseira (formada por menos vértices, e portanto mais compacta) de uma poligonal a partir de uma representação mais refinada. Em geral usa-se alguma medida da proximidade geométrica entre as poligonais, tais como o máximo ou mínimo deslocamento perpendicular permitido. * __Interseção de conjuntos de segmentos__: Operações como união, interseção, diferença e as operações que avaliam o relacionamento topológico necessitam determinar esses pontos como uma das primeiras etapas de seus processamentos, sendo esta a de maior consumo de processamento. Plane Sweep e Algoritmos de interseção por partição do espaço. * __União, interseção e diferença de polígonos__ * __Mapas de distância (buffer zones)__ * __Relacionamentos topológicos__ * **Ao** --> Interior * **¶A** --> Fronteira * **A-** --> Exterior * __Intersecções__: * **disjoint**: * **meet**: * **contains**: * **cover**: * **equals**: * **overlap**: * **inside**: * **covered by**: * __Operadores__: * **touch**: * **in**: * **cross**: * **overlap**: * **disjoint**: * __Determinação do relacionamento topológico__.