8.7. Tipos geométricos

Os tipos de dado geométricos representam objetos espaciais bidimensionais. A Tabela 8-16 mostra os tipos geométricos disponíveis no PostgreSQL. O tipo mais fundamental, o ponto, forma a base para todos os outros tipos.

Tabela 8-16. Tipos geométricos

Nome Tamanho de Armazenamento Descrição Representação
point 16 bytes Ponto no plano (x,y)
line 32 bytes Linha infinita (não totalmente implementado) ((x1,y1),(x2,y2))
lseg 32 bytes Segmento de linha finito ((x1,y1),(x2,y2))
box 32 bytes Caixa retangular ((x1,y1),(x2,y2))
path 16+16n bytes Caminho fechado (semelhante ao polígono) ((x1,y1),...)
path 16+16n bytes Caminho aberto [(x1,y1),...]
polygon 40+16n bytes Polígono (semelhante ao caminho fechado) ((x1,y1),...)
circle 24 bytes Círculo <(x,y),r> (centro e raio)

Está disponível um amplo conjunto de funções e operadores para realizar várias operações geométricas, como escala, translação, rotação e determinar interseções, conforme explicadas na Seção 9.10.

8.7.1. Pontos

Os pontos são os blocos de construção bidimensionais fundamentais para os tipos geométricos. Os valores do tipo point são especificados utilizando a seguinte sintaxe:

( x , y )
  x , y

onde x e y são as respectivas coordenadas na forma de números de ponto flutuante.

8.7.2. Segmentos de linha

Os segmentos de linha (lseg) são representados por pares de pontos. Os valores do tipo lseg são especificado utilizando a seguinte sintaxe:

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )
    x1 , y1   ,   x2 , y2

onde (x1,y1) e (x2,y2) são os pontos das extremidades do segmento de linha.

8.7.3. Caixas

As caixas são representadas por pares de pontos de vértices opostos da caixa. Os valores do tipo box são especificados utilizando a seguinte sintaxe:

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )
    x1 , y1   ,   x2 , y2

onde (x1,y1) e (x2,y2) são quaisquer vértices opostos da caixa.

As caixas são mostradas utilizando a primeira sintaxe. Os vértices são reordenados na entrada para armazenar o vértice direito superior e, depois, o vértice esquerdo inferior. Podem ser especificados outros vértices da caixa, mas os vértices esquerdo inferior e direito superior são determinados a partir da entrada e armazenados.

8.7.4. Caminhos

Os caminhos são representados por listas de pontos conectados. Os caminhos podem ser abertos, onde o primeiro e o último ponto da lista não são considerados conectados, e fechados, onde o primeiro e o último ponto são considerados conectados.

Os valores do tipo path são especificados utilizando a seguinte sintaxe:

( ( x1 , y1 ) , ... , ( xn , yn ) )
[ ( x1 , y1 ) , ... , ( xn , yn ) ]
  ( x1 , y1 ) , ... , ( xn , yn )
  ( x1 , y1   , ... ,   xn , yn )
    x1 , y1   , ... ,   xn , yn

onde os pontos são os pontos das extremidades dos segmentos de linha que compõem o caminho. Os colchetes ([]) indicam um caminho aberto, enquanto os parênteses (()) indicam um caminho fechado.

Os caminhos são mostrados utilizando a primeira sintaxe.

8.7.5. Polígonos

Os polígonos são representados por uma lista de pontos (os vértices do polígono). Provavelmente os polígonos deveriam ser considerados equivalentes aos caminhos fechados, mas são armazenados de forma diferente e possuem um conjunto próprio de rotinas de suporte.

Os valores do tipo polygon são especificados utilizando a seguinte sintaxe:

( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )
  ( x1 , y1   , ... ,   xn , yn )
    x1 , y1   , ... ,   xn , yn

onde os pontos são os pontos das extremidades dos segmentos de linha compondo a fronteira do polígono.

Os polígonos são mostrados utilizando a primeira sintaxe.

8.7.6. Círculos

Os círculos são representados por um ponto central e um raio. Os valores do tipo circle são especificado utilizando a seguinte sintaxe:

< ( x , y ) , r >
( ( x , y ) , r )
  ( x , y ) , r
    x , y   , r

onde (x,y) é o centro e r é o raio do círculo.

Os círculos são mostrados utilizando a primeira sintaxe.

SourceForge.net Logo CSS válido!