Mudanças entre as edições de "SVG/Convex Hull"

De Garoa Hacker Clube
< SVG
Ir para navegação Ir para pesquisar
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 12: Linha 12:
 
A figura a seguir, contém a representação de (a) um conjunto arbitrário de curvas fechadas (representadas com traço avermelhado) e (b) o resultado do cômputo da envoltória convexa deste conjunto de curvas (representado com traço verde e preenchimento cinza).
 
A figura a seguir, contém a representação de (a) um conjunto arbitrário de curvas fechadas (representadas com traço avermelhado) e (b) o resultado do cômputo da envoltória convexa deste conjunto de curvas (representado com traço verde e preenchimento cinza).
   
[[Arquivo:Exemplo de envoltoria convexa.svg]]
+
[[Arquivo:Exemplo de envoltoria convexa.svg|300px]]
   
 
== implementações existentes ==
 
== implementações existentes ==
Linha 30: Linha 30:
 
A imagem abaixo demonstra a renderização desta geometria inicial.
 
A imagem abaixo demonstra a renderização desta geometria inicial.
   
[[Image:Geometria inicial openscad.png]]
+
[[Image:Geometria inicial openscad.png|300px]]
   
 
O script abaixo computa a envoltória convexa dessa mesma geometria inicial.
 
O script abaixo computa a envoltória convexa dessa mesma geometria inicial.
Linha 43: Linha 43:
 
Pode-se ver na imagem a seguir o resultado gráfico da operação de envoltória convexa.
 
Pode-se ver na imagem a seguir o resultado gráfico da operação de envoltória convexa.
   
[[Imagem:Envoltoria convexa openscad.png]]
+
[[Imagem:Envoltoria convexa openscad.png|300px]]

Edição atual tal como às 23h14min de 30 de julho de 2014

Este artigo é um ensaio para a elaboração de uma proposta de extensão ao padrão Svalable Vector Graphics, da W3C.

definição e premissas

A funcionalidade em questão é a habilidade de, dado um conjunto de geometrias vetoriais, computar geometria vetorial resultante da operação conhecida como Convex Hull, ou Envoltória Convexa.

Essa operação só se aplica a geometrias fechadas. Me parece natural que para o caso de geometrias definidas por curvas abertas seja considerada a geometria fechada resultante da adição de um segmento de reta unindo o ponto inicial ao ponto final da curva original.

TODO: adicionar uma imagem aqui representando a equivalência sugerida entre curvas abertas e curvas fechadas, para o cômputo de envoltórias convexas

A Envoltória Convexa de um conjunto de curvas fechadas, é definida como a curva convexa de menor área posível que contenha todas as curvas do conjunto.

A figura a seguir, contém a representação de (a) um conjunto arbitrário de curvas fechadas (representadas com traço avermelhado) e (b) o resultado do cômputo da envoltória convexa deste conjunto de curvas (representado com traço verde e preenchimento cinza).

Exemplo de envoltoria convexa.svg

implementações existentes

OpenSCAD

O software CAD de modelagem algoritmica e paramétrica OpenSCAD implementa a operação de envoltória convexa por meio do módulo hull(){ ... }.

Exemplo

Segue abaixo um exemplo de uso desta funcionalidade. O script abaixo descreve uma geometria composta por um círculo de raio 50 posicionado na origem do sistema de coordenadas e um circulo maior, de raio=80, posicionado na coordenada x=160,y=0.

circle(r=50);
translate([160,0]) circle(r=80);

A imagem abaixo demonstra a renderização desta geometria inicial.

Geometria inicial openscad.png

O script abaixo computa a envoltória convexa dessa mesma geometria inicial.

hull(){
  circle(r=50);
  translate([160,0]) circle(r=80);
}

Pode-se ver na imagem a seguir o resultado gráfico da operação de envoltória convexa.

Envoltoria convexa openscad.png