Mais

Como calcular a distância até a borda do polígono para calcular contratempos de construção?


Estou tentando calcular contratempos de construção usando dados de pegada de construção. Um recuo de construção é a distância entre uma construção e a borda da linha do lote. (Você pode distinguir este contratempo de garagem e contratempo de estrutura, mas não vou complicar as coisas.) A imagem abaixo (linhas vermelhas) mostra a distância que estou tentando obter para um dos blocos como exemplo.

Não tenho ideia de como começar isso. Acho que preciso transformar a pegada e os polígonos do pacote em polilinhas e quebrar nos vértices. Eu quero usar a linha central da rua (verde) como uma espécie de ímã para que a distância seja calculada para o frente do lote em vez da parte traseira ou lateral. Posso ignorar lotes de esquina por enquanto.

BTW, as parcelas também são dissolvidas, por isso é apenas uma estrutura de blocos (foto abaixo). Isso significa que eu só preciso encontrar a distância mais curta entre o polígono da pegada e a borda do polígono do bloco.

Se alguém tiver alguma pista, por favor me avise! Isso é para um projeto de classe. (E estou usando ArcGIS e QGIS.)


Em primeiro lugar, construa manualmente um polígono enorme em torno de todos os seus pacotes cinza claro. Em seguida, apague as parcelas do polígono enorme. Agora converta as parcelas cinza claro em linhas.

Depois de ter essas camadas, selecione por localização as linhas das parcelas cinza claro que compartilham um segmento de linha com seu polígono enorme apagado. Exporte essas linhas selecionadas para uma nova camada.

Finalmente, execute a ferramenta near com seus polígonos pretos e as linhas resultantes. Essa é a distância que você está procurando.


Usando o índice espacial para impulsionar a consulta de distância de um ponto a um polígono

Aqui, apresenta como aumentar as consultas de interseção espacial usando R-Tree. Aqui, @JHuw fornece maneiras usando R-Tree para calcular a distância mais próxima de ponto a ponto e linha, respectivamente. No entanto, não encontrei uma solução para aumentar a consulta de distância de um ponto a um polígono usando R-Tree. Eu segui os exemplos mencionados acima e ainda não descobri como implementar R-Tree na consulta de distância mais próxima de um ponto a um polígono. Alguém poderia me ajudar a descobrir isso? Muito apreciado. Eu uso a América do Sul e um subconjunto de cidades do GeoPandas como exemplo no seguinte:


2 respostas 2

Aqui estou usando a função gDistance na biblioteca de topologia rgeos. Estou usando um laço duplo de força bruta, mas é surpreendentemente rápido. Demora menos de 2 segundos para 142 pontos e 10 polígonos. Tenho certeza de que existe uma maneira mais sofisticada de executar o loop.

O vetor min.dist representa o número da linha do polígono. Por exemplo, você pode subdividir os polígonos mais próximos usando esse vetor como tal.

O vetor PolyDist contém as distâncias mínimas cartesianas reais nas unidades de projeção dos recursos.

Em um polígono, você tem muitas linhas. A distância entre um polígono é zero, se o ponto estiver dentro do polígono ou em uma aresta.

Então, na verdade, você está procurando por dois casos:

  1. Verifique se o ponto está dentro de algum polígono (lembre-se que pode ser mais do que um único polígono
  2. Obtenha uma coleção de todas as arestas e calcule cada distância do ponto a partir da aresta. A distância mais próxima fornece a distância do polígono ao qual a aresta pertence também.

Portanto, este é um algoritmo simples que, se considerarmos 10 arestas por polígono, leva O (10 * 10) * 142 para todos os seus pontos. Isso faz com que 100 * 142 = 14200 operações. => O (m * deltaE) * n (m é o número de polígonos, deltaE é o número médio de arestas por polígono, n é o número de pontos).

Agora vamos verificar se podemos acelerar isso. A primeira coisa que vem à mente é que podemos usar marcações de caixa delimitadora ou círculos delimitadores para cada polígono.

Outra ideia é preparar as arestas mais próximas de cada polígono para um conjunto de ângulos. Por exemplo, se você tiver 8 ângulos (a cada 45 °), você pode remover todas as arestas da lista que são substituídas por outra aresta (portanto, qualquer ponto da aresta removida renderá sempre uma distância maior do que qualquer ponto da outra aresta do mesmo polígono.

Dessa forma, normalmente você pode reduzir a complexidade em uma grande margem. Se você pensar em um retângulo, terá apenas uma ou duas arestas em vez de 4. Se você pensar em um polígono regular de 8 arestas, poderá acabar com normalmente uma ou duas e no máximo 3 arestas por polígono.

Se você adicionar o vetor normal a cada aresta, você pode calcular se o ponto pode estar dentro e você tem que executar uma linha de varredura ou qualquer outra verificação (ou você conhece seu konvex) para ter certeza.

Existem também índices de mapeamento possíveis, como separar o espaço bidimensional por xey de forma equidistante. Desta forma, você só precisa testar polígonos em 9 setores.

A próxima versão pode usar uma árvore R em que cada caixa delimitadora (círculo) de cada nó deve ser verificada quanto à distância mínima esperada e a distância máxima esperada. Portanto, não é necessário verificar os polígonos de um nó que resultam em distâncias mínimas muito maiores do que as distâncias máximas de outro nó.

Outra coisa é se você tem uma determinada árvore como a ordem que você tem com os dados do mapa. Em um mapa de ruas, você sempre tem mundo -> região -> país -> condado -> cidade -> setor da cidade ->.

Desta forma, você pode pesquisar o local mais próximo em um mapa do mundo inteiro contendo milhões de polígonos em um tempo razoável, a maioria & lt10ms.

Por assim dizer, você tem muitas opções aqui. E pré-processar sua lista de polígonos e extrair arestas relevantes usando árvores de partição de espaço binário de polígonos ou usando uma abordagem angular ou até mesmo ir com algo ainda mais sofisticado. Você decide. Espero que você termine fazendo algo na faixa logarítmica como O (log (n) * log (deltaE)) tornando-se O (log (n)) como uma complexidade média.


Crie e personalize todos os seus dados em um único aplicativo

A interface fácil de usar do Polygon & # 8217s e as fitas de ferramentas intuitivas tornam simples revisar e editar seus dados em 3D, como um gráfico ou uma tabela. Crie um hiperlink para salvar seu layout, que pode ser restaurado na tela a qualquer momento.

Comunique o que é importante

O Polygon permite que você visualize a sobreposição de vídeo nativo no espaço de trabalho 3D, personalize sua tabela de estatísticas principais, revise e anote rapidamente com tags de dados e crie gráficos e visuais que representam seus dados claramente.

Apresente e compartilhe com confiança

O Polygon pode exportar automaticamente seus dados na tela para seis formatos diferentes, incluindo um relatório independente com seu próprio Polygon Viewer. Isso permite que você acesse, personalize e compartilhe seus dados na tela com outras pessoas de uma forma que atenda às suas necessidades.

Totalmente integrado com Nexus e bodybuilder

O Vicon Polygon é totalmente integrado ao Vicon Nexus e ao Vicon BodyBuilder por meio do gerenciamento de dados Eclipse, que fornece uma interface de usuário padrão para organização e acesso de dados. Visualize e acesse imediatamente uma hierarquia de todos os arquivos de dados e relatórios.

Módulo de modelagem muscular

Visualize modelos, ligue as cores dos músculos à atividade EMG e plote as principais variáveis, como comprimentos dos músculos, momentos e braços de momento.

A ferramenta mais avançada para visualização de biofeedback em tempo real.

Ele pode normalizar os dados gráficos para movimentos repetitivos de forma que o ciclo de movimento atual possa ser sobreposto com dados históricos. Ideal para treinamento, uma vez que você pode sugerir mudanças reais nos padrões de movimento do sujeito e ver os resultados imediatamente.

Filme e multimídia

Faça panorâmica e zoom no painel do filme para focar e criar um hiperlink para descobertas importantes que estão ocorrendo em um vídeo de referência. O vídeo de referência calibrado pode ser importado automaticamente junto com os dados de teste quando capturados simultaneamente.

Exiba e compare vários assuntos

Este poderoso recurso permite que você compare diretamente os padrões de movimento de um sujeito antes e depois da intervenção ou compare as técnicas de um atleta experiente e novato, lado a lado e totalmente sincronizado.

INFORMAÇÃO TÉCNICA

Qual é a especificação mínima do PC para executar o Vicon Polygon?

CLIQUE AQUI PARA PERGUNTAS FREQUENTES DO PC

Qual sistema operacional (SO) posso usar com meu software Vicon?

Versão de lançamento atual Windows 10 Windows 7 * Linux OSX
Shōgun 1.2.1 64 bits 64 bits* x x
Nexus 2.9.2 64 bits 64 bits* x x
Tracker 3.7.0 64 bits 64 bits* x x
Polígono 4.4.5 64 bits 64 bits* x x
CaraLive 1.3.0 64 bits 64 bits* x x
CaraPost 1.2.0 64 bits 64 bits* x x
Pegasus 1.2.1 64 bits 64 bits* x x
ProCalc 1.3.0 64 bits 64 bits* x x
ProEclipse 1.3.1 64 bits 64 bits* x x
DataStream SDK 1.8.0 64 bits 64 bits* 64 bits 10.11
Fisiculturista 3.6.4 64 bits 64 bits* x x
  1. Recomendado e totalmente compatível com Windows 10 (64 bits) e # 8212 com .NET Framework 4.5 e superior
  2. * Embora o software Vicon possa instalar e funcionar em outros sistemas operacionais Microsoft Windows
    (Compatibilidade testada apenas para Windows 7 (64 bits) e # 8212 com .NET Framework 4.5), isso não é oficialmente suportado ou recomendado pela Vicon.
    Após 14 de janeiro de 2020, a Microsoft não fornecerá mais atualizações de segurança e suporte para PCs com Windows 7. Se você continuar a usar o Windows 7 após o término do suporte, seu PC ainda funcionará, mas pode se tornar mais vulnerável a riscos de segurança.
  3. Para a versão legada, entre em contato com o Suporte Vicon

Como faço para configurar minha placa de rede?

1. Abra a Central de Rede e Compartilhamento e navegue até Alterar Configurações do Adaptador. As câmeras Vicon Vantage / Vero são designadas a uma porta. Para cada câmera Vue (ou Vídeo Bonita) conectada, haverá uma porta de rede adicional usada.

2. Clique com o botão direito na porta adequada e vá para Propriedades. A janela Propriedades da conexão de rede local será aberta. Certifique-se de que apenas o protocolo da Internet versão 4 (TCP / IPv4) esteja selecionado.

3. Selecione Protocolo da Internet versão 4 (TCP / IPv4) na lista e selecione Propriedades para atribuir o endereço IP adequado.

uma As câmeras .Vantage / Vero terão o seguinte endereço IP: 192.168.10.1 e máscara de sub-rede de: 255.255.255.0

b. A primeira câmera VUE terá o seguinte endereço IP: 192.168.10.2 e máscara de sub-rede de 255.255.255.0

c. Para quaisquer câmeras VUE adicionais, o último valor IP é incrementado em um. Por exemplo, a segunda câmera VUE será 192.168.10.3.

Selecione OK para fechar as Propriedades do protocolo da Internet versão 4 (TCP / IPv4). E OK novamente para fechar as Propriedades de Conexão de Área Local. Isso garantirá que todas as alterações foram salvas.

4. Sinta-se à vontade para renomear a porta de rede para que seja facilmente identificável. Como ViconMX, VUE1 ou VUE2

Para obter mais assistência, consulte a seção Configurando portas do PCSetupforViconSystems.pdf encontrado em Downloads & gt Documentation

Baixar polígono

Nome do arquivo: Polygon_4.4.6.124541h.zip

Vicon Polygon oferece ferramentas de relatório e apresentação para comunicar e compartilhar seus dados profissionalmente. O Polygon fornece as ferramentas para comunicar o que é mais importante.

O Polygon 4.4.6 é uma versão de patch do Vicon Polygon 4 que aborda os problemas relatados desde o lançamento do Polygon 4.4.5.

  1. Dados normativos do polígono. Os dados normativos da marcha, que são representados como um PXD, estão disponíveis na atualização mais recente do Polygon. Os dados normativos foram obtidos de Schwartz et al. (2008), O efeito da velocidade da caminhada na marcha de crianças com desenvolvimento típico. https://doi.org/10.1016/j.jbiomech.2008.03.015
  2. Modelos de relatórios de polígonos: exemplos de esportes e movimentos funcionais. Cinco modelos de relatório adicionais foram incluídos no instalador do Polygon. Esses exemplos incluem ajuste de bicicleta, força e condicionamento, pré e pós-reabilitação, salto com queda do Plug-in Gait e salto com queda do Fluxo de Trabalho Avançado. Cálculos personalizados foram gerados no ProCalc para os exemplos de modelo de relatório de ajuste de bicicleta e drop jump. Esses esquemas podem ser baixados em https://www.vicon.com/software/models-and-scripts/
  3. Inverta a origem da plataforma de força quando uma plataforma de força tem um deslocamento de origem que não está no centro da plataforma, mas na borda.
  • Average Node exibe tentativas no nó.
  • Vetor da placa de força e exibição do alinhamento da borboleta. Uma nova opção permite que você inverta a origem quando o deslocamento da origem não está no centro da placa, de forma que os dados de força estejam alinhados corretamente e correspondam ao Vicon Nexus.
  • Associa os contextos da plataforma de força corretamente na importação de dados.
  • Os contextos dos eventos de marcha são exibidos corretamente na barra de tempo.
  • A Exportação do Word pode substituir um arquivo existente.
  • A média e o desvio padrão usam as cores do contexto ao usar o botão Average Traces.
  • O arquivo de malha é exibido quando os segmentos de esqueleto são selecionados individualmente na área de trabalho de exibição.

Nome do arquivo: Polygon_4.4.5.118357h.zip

Vicon Polygon oferece ferramentas de relatório e apresentação para comunicar e compartilhar seus dados profissionalmente. O Polygon fornece as ferramentas para comunicar o que é mais importante.

O Polygon 4.4.5 é uma versão de patch do Vicon Polygon 4 que aborda os problemas relatados desde o lançamento do Polygon 4.4.4.

  • Melhorias na exibição de vídeo no modo de reprodução otimizada.
  • Calibrações de câmera, arquivos MKR e carregamento de vídeo quando o caminho de teste contém um ponto.
  • Os hiperlinks contêm corretamente o vídeo importado.
  • O alinhamento do vídeo de sobreposição 3D melhorou próximo à borda do campo de visão.
  • Melhorias para exportar AVI com codecs.
  • O eixo do gráfico vertical é exibido fixo em relatórios de modelo vazios.
  • As tentativas com mais de 32 ciclos de marcha indicam cinemática e cinética na carga.
  • A média de dados e a alteração de parâmetros não bloqueiam mais o aplicativo.
  • Importar dados de um local diferente para o Relatório importa corretamente a sobreposição de vídeo.
  • Melhorias nas compensações de vídeo otimizadas para sincronização de câmeras Vue com janelas.
  • A região de desvio padrão (Stddev) no modo de aparência de contexto exibe a cor correta.
  • Exportar 3D como um AVI exporta corretamente o eixo do laboratório.
  • O gráfico dos momentos da plataforma de força usando todos os componentes exibe um único gráfico.
  • Corrigida entrada duplicada de Mark Node no menu de contexto

Requisitos:
Licença SafeNet do Polygon 4.x.

Recomendado e totalmente compatível com & # 8211 Windows 10 (64 bits) & # 8212 com .NET Framework 4.5 e superior.

Nome do arquivo: Polygon_4.4.4.116061h.zip

Vicon Polygon oferece ferramentas de relatório e apresentação para comunicar e compartilhar seus dados profissionalmente. O Polygon fornece as ferramentas para comunicar o que é mais importante.

O Polygon 4.4.4 é uma versão de patch do Vicon Polygon 4 que aborda os problemas relatados desde o lançamento do Polygon 4.4.3.

  • Agora você pode adicionar um segmento que já foi adicionado à Visualização da área de trabalho.
  • Polygon agora percorre corretamente as seleções da guia Graph ao manter pressionado o botão direito do mouse e clicar repetidamente com o botão esquerdo.
  • Ao adicionar tags de dados a uma guia de gráfico, as caixas de tags de dados agora não são realocadas em outra guia de gráfico.
  • A sobreposição 3D de Mostrar objetos agora se alinha corretamente com o vídeo.
  • Os relatórios criados em versões anteriores do Polygon agora mantêm o layout de gráfico correto.
  • A opção Ignorar Stdev em um nó de Análise agora é mantida e Stdevs não são impressos.
  • Os gráficos de plotagem de fase agora exibem a escala correta e não são redimensionados depois de clicar com o botão direito do mouse e Substituir link em um painel de texto.
  • Ao adicionar gráficos em miniatura com vários ciclos de marcha, se Contexto e # 8211 Modo de exibição estiver definido como Lado a lado, todos os gráficos serão exibidos corretamente.
  • O botão Carregar modelo de assunto agora fica ativo conforme o esperado.
  • Em Trial Average agora calcula a média e o desvio padrão para cada contexto.
  • As Forças de reação do solo normalizadas agora são exibidas como% BW.
  • A importação de testes com o mesmo nome de diferentes sessões para um modelo não causa mais problemas.
  • Licença do Polygon 4.x Safenet
  • Recomendado e totalmente compatível com & # 8211 Windows 10 (64 bits) & # 8212 com .NET Framework 4.5 e superior.

O Polygon 4 introduziu novas melhorias visuais destinadas a tornar seus relatórios mais realistas visualmente. Isso significa que o PC recomendado para uma máquina de criação de relatórios é um pouco maior do que o necessário para a versão 3 do Polygon.

Vicon recomenda um PC com especificações mínimas de:

  • CPU: Dual Core 2 GHz ou melhor
  • Gráficos: Placa NVidia discreta com 256 Mb ou melhor. A placa gráfica deve ser totalmente compatível com Open GL
  • RAM: 2 Gb (de preferência 4 Gb)

O novo visual atualizado no Polygon 4 significa que ter um driver de placa de vídeo atualizado é essencial. Certifique-se de atualizar o driver gráfico para o driver mais disponível oferecido pelo fabricante da placa gráfica.

Visualizador de polígonos em laptops com chip gráfico Intel integrado

Alguns chips gráficos baseados em Intel integrados não suportam totalmente todos os aspectos do Open GL necessários para a visualização dos relatórios do Polygon 4. Esses chips gráficos não são soluções de placa de vídeo discretas.

Nome do arquivo: Nome do arquivo: Polygon_4.4.2.112477h.zip

Vicon Polygon oferece ferramentas de relatório e apresentação para comunicar e compartilhar seus dados profissionalmente. O Polygon fornece as ferramentas para comunicar o que é mais importante.

O Polygon 4.4.2 é uma versão de patch do Vicon Polygon 4 que aborda os problemas relatados desde o lançamento do Polygon 4.4.1.

  • Resolvido o comportamento de Exportar relatório para Word.
  • Alterar o contexto ao usar um modelo irá contextualizar corretamente.
  • O modo de contexto sobreposto exibirá gráficos corretamente.
  • Os gráficos de energia são exibidos ao usar modelos.
  • Rótulos inferiores são exibidos corretamente em todas as miniaturas.
  • Licença do Polygon 4.x Safenet
  • Recomendado e totalmente compatível com & # 8211 Windows 10 (64 bits) & # 8212 com .NET Framework 4.5 e superior.

O Polygon 4 introduziu novas melhorias visuais destinadas a tornar seus relatórios mais realistas visualmente. Isso significa que o PC recomendado para uma máquina de criação de relatórios é um pouco maior do que o necessário para a versão 3 do Polygon.

Vicon recomenda um PC com especificações mínimas de:

  • CPU: Dual Core 2 GHz ou melhor
  • Gráficos: Placa NVidia discreta com 256 Mb ou melhor. A placa gráfica deve ser totalmente compatível com Open GL
  • RAM: 2 Gb (de preferência 4 Gb)

O novo visual atualizado no Polygon 4 significa que ter um driver de placa de vídeo atualizado é essencial. Certifique-se de atualizar o driver gráfico para o driver mais disponível oferecido pelo fabricante da placa gráfica.

Visualizador de polígonos em laptops com chip gráfico Intel integrado

Alguns chips gráficos baseados em Intel integrados não suportam totalmente todos os aspectos do Open GL necessários para a visualização dos relatórios do Polygon 4. Esses chips gráficos não são soluções de placa de vídeo discretas.

Nome do arquivo: Polygon_4.4.1.111973h.zip

Vicon Polygon oferece ferramentas de relatório e apresentação para comunicar e compartilhar seus dados profissionalmente. O Polygon fornece as ferramentas para comunicar o que é mais importante.

O Polygon 4.4.1 é uma versão de patch do Vicon Polygon 4 que aborda os problemas relatados desde o lançamento do Polygon 4.4.

  • As estatísticas principais serão exibidas para a fase de postura e balanço ao calcular a média
  • O Polygon Viewer abrirá hiperlinks corretamente quando um relatório exportado for salvo em uma pasta de caracteres não ASCII
  • A função Exportar para AVI do espaço de trabalho 3D funciona corretamente
  • A função Remove Traces se comporta corretamente quando um grande número de visualizações de dados é definido
  • Licença do Polygon 4.x Safenet
  • Recomendado e totalmente compatível com & # 8211 Windows 10 (64 bits) & # 8212 com .NET Framework 4.5 e superior.

O Polygon 4 introduziu novas melhorias visuais destinadas a tornar seus relatórios mais realistas visualmente. Isso significa que o PC recomendado para uma máquina de criação de relatórios é um pouco maior do que o necessário para a versão 3 do Polygon.

Vicon recomenda um PC com especificações mínimas de:

  • CPU: Dual Core 2 GHz ou melhor
  • Gráficos: Placa NVidia discreta com 256 Mb ou melhor. A placa gráfica deve ser totalmente compatível com Open GL
  • RAM: 2 Gb (de preferência 4 Gb)

O novo visual atualizado no Polygon 4 significa que ter um driver de placa de vídeo atualizado é essencial. Certifique-se de atualizar o driver gráfico para o driver mais disponível oferecido pelo fabricante da placa gráfica.

Visualizador de polígonos em laptops com chip gráfico Intel integrado

Alguns chips gráficos baseados em Intel integrados não suportam totalmente todos os aspectos do Open GL necessários para a visualização dos relatórios do Polygon 4. Esses chips gráficos não são soluções de placa de vídeo discretas.

Nome do arquivo: Polygon_4.4.0.106466h_x86.zip

Vicon Polygon oferece ferramentas de relatório e apresentação para comunicar e compartilhar seus dados profissionalmente. O Polygon fornece as ferramentas para comunicar o que é mais importante.

O Polygon 4.4 é uma versão de patch do Vicon Polygon 4 que adiciona novas funcionalidades e também aborda problemas relatados desde o lançamento do Polygon 4.3.

  1. O Polygon pode ler e exibir informações armazenadas na seção Análise de um arquivo C3D. Isso inclui o parâmetro escrito do Vicon ProCalc.
  • Corrigido um problema em que as estatísticas principais ausentes podiam impedir a alternância de um gráfico entre miniatura e exibição de guia
  • Resolvido um problema em que vários traços em um gráfico podiam impedir a alternância de um gráfico entre miniatura e exibição de guia
  • A barra de tempo agora exibe eventos para o traço atualmente selecionado
  • Novos gráficos agora respeitam adequadamente a opção “Normalizar novos gráficos automaticamente”
  • Velocidades de carregamento aprimoradas de arquivos de modelo grandes
  • Licença do Polygon 4.x Safenet
  • Recomendado e totalmente compatível com & # 8211 Windows 10 (64 bits) & # 8212 com .NET Framework 4.5 e superior.

Recomendação para PC

O Polygon 4 introduziu novas melhorias visuais destinadas a tornar seus relatórios mais realistas visualmente. Isso significa que o PC recomendado para uma máquina de criação de relatórios é um pouco maior do que o necessário para a versão 3 do Polygon.

Vicon recomenda um PC com especificações mínimas de:

  • CPU: Dual Core 2 GHz ou melhor
  • Gráficos: Placa NVidia discreta com 256 Mb ou melhor. A placa gráfica deve ser totalmente compatível com Open GL
  • RAM: 2 Gb (de preferência 4 Gb)

O novo visual atualizado no Polygon 4 significa que ter um driver de placa de vídeo atualizado é essencial. Certifique-se de atualizar o driver gráfico para o driver mais disponível oferecido pelo fabricante da placa gráfica.

Visualizador de polígono em laptops com chip gráfico Intel integrado

Alguns chips gráficos baseados em Intel integrados não suportam totalmente todos os aspectos do Open GL necessários para a visualização dos relatórios do Polygon 4. Esses chips gráficos não são soluções de placa de vídeo discretas.

Nome do arquivo: Polygon_4.3.3.101431h_x86.zip

Após o lançamento do Polygon 4.3.2, foi relatado um problema que impedia a importação de alguns tipos de arquivo de filme herdados. Esta atualização do Polygon corrige esse problema.

O Polygon 4 introduziu novas melhorias visuais destinadas a tornar seus relatórios mais realistas visualmente. Isso significa que o PC recomendado para uma máquina de criação de relatórios é um pouco maior do que o necessário para a versão 3 do Polygon.

Vicon recomenda um PC com especificações mínimas de:

  • CPU: Dual Core 2 GHz ou melhor
  • Gráficos: Placa NVidia discreta com 256 Mb ou melhor. A placa gráfica deve ser totalmente compatível com Open GL
  • RAM: 2 Gb (de preferência 4 Gb)

O novo visual atualizado no Polygon 4 significa que ter um driver de placa de vídeo atualizado é essencial. Certifique-se de atualizar o driver gráfico para o driver mais disponível oferecido pelo fabricante da placa gráfica.

Visualizador de polígonos em laptops com chip gráfico Intel integrado

Alguns chips gráficos baseados em Intel integrados não suportam totalmente todos os aspectos do Open GL necessários para a visualização dos relatórios do Polygon 4. Esses chips gráficos não são soluções de placa de vídeo discretas.

Nome do arquivo: Polygon_4.3.2.100700h_x86.zip

Polygon 4.3.2 é uma versão de patch para o Vicon Polygon. Esta atualização melhora o comportamento de alguns recursos existentes e aborda uma série de problemas relatados após o lançamento do Polygon 4.3.1.

Recursos ou atualizações de recursos:

  1. Os arquivos PDF agora podem ser importados corretamente para um relatório.
  2. Adicionar uma barra PGemg não afeta mais a visualização dos ciclos de marcha existentes.
  3. Os arquivos C3D agora podem ser carregados sem que seus arquivos de vídeo associados sejam importados.
  4. A barra de tempo só é atualizada depois que você seleciona um teste diferente na barra de dados.
  5. A sobreposição de vídeo agora é exibida corretamente na visualização do espaço de trabalho.
  6. O marcador COM agora é exibido corretamente na visualização do espaço de trabalho.
  7. Os comentários de espaço reservado agora são removidos corretamente quando um teste é atualizado / atualizado.
  8. Atualizar ou atualizar um teste agora atualiza as saídas do modelo.
  9. Caracteres especiais (exemplo: é) em um nome de assunto não impedem mais o carregamento de uma avaliação.
  10. O diagrama de borboleta não parece mais "flutuar" acima do FP visualmente.
  11. Os vetores de força para placas AMTI organizadas em uma configuração de “escada” agora são exibidos corretamente.
  12. Adicionar gráficos na visualização de miniaturas não resulta mais em travamento.
  13. Clicar duas vezes para mover entre o gráfico único e a visualização do gráfico em miniatura agora funciona de forma confiável.
  14. O botão Traço médio agora alterna corretamente quando grupos de traços são adicionados a um gráfico.
  15. Espaços extras não são mais adicionados a um relatório quando os links são definidos como Do Not Export.
  16. Quando um modelo é salvo em um novo local, você não precisa mais fechar e reabrir o Polygon.
  17. Exportar para o Word não resulta mais em travamento.
  18. O polígono não mostra mais contexto (s) incorreto (s) ao carregar um c3d que contém contextos não padrão.
  19. Os eventos atualizados no Nexus agora são atualizados corretamente no Polygon quando o teste é atualizado.

Nome do arquivo: Polygon_4.3.1.94913h_x86.zip

Polygon 4.3.1 é uma versão de patch do Vicon Polygon. Esta atualização adiciona uma série de novos recursos, atualiza o comportamento de alguns recursos existentes e aborda uma série de problemas relatados após o lançamento do Polygon 4.3

Recursos ou atualizações de recursos:

  1. O nome do teste atualmente selecionado está visível na barra de tempo
  2. Um título de arquivo de vídeo agora é exibido na parte superior do painel de vídeo
  3. A espessura da linha de rastreamento agora pode ser personalizada nas configurações do Esquema de Normalização
  4. A aparência do contexto agora é automaticamente desativada quando uma nova cor de traço é selecionada
  5. A área da barra de dados agora pode ser redimensionada

Questões abordadas destacadas: • A maneira como os arquivos de vídeos são carregados na memória foi aprimorada para remover um limite no número de vídeos que poderiam ser carregados • Ter um traço de segmento exibido ao fechar o polígono não resulta mais em uma falha • O atributo de espessura do traço agora funciona corretamente para traços médios • Atributo de cor de contexto não substitui mais uma cor de traço personalizada • Usar a caixa de pesquisa de nome ProEclipse dentro do Polygon agora permite o uso de um espaço em um nome • Ctrl-C em gráficos com apenas um contexto não causa mais erro • Os botões de reprodução não estavam disponíveis até você representar graficamente uma variável, ou seja, cinemática • Dispositivos de vídeo capturados com rotações de 90 graus agora retêm a sobreposição calibrada quando você mostra o objeto

Janela 7 recomendada O instalador Polygon agora permitirá a instalação na janela 10

Nome do arquivo: Polygon_3.5.2_65151_x86.zip

Vicon Polygon é uma ferramenta de elaboração de relatórios projetada expressamente para aplicações em Ciências da Vida.

Laboratórios clínicos e de pesquisa, centros de desempenho esportivo, universidades e outras instituições podem aproveitar a interface amigável para criar relatórios de dados e modelos de relatórios de dados.

Problema destacado resolvido:

• O Polygon 3.5.2 corrige o problema da incapacidade do Polygon & # 8217s de importar automaticamente o arquivo de vídeo / filme exportado das versões mais recentes do Vicon Nexus. Esse problema é devido a uma nova convenção de nomenclatura que adicionou um carimbo de data e hora a esses arquivos de filme (AVIs).

Licença da versão 3 principal do polígono (dongle HASP).

Onde posso encontrar a documentação do software mais recente?

Você pode encontrar a documentação mais recente para todas as versões atuais do software aqui:

O software Vicon Core também instalará a documentação / guia de ajuda quando você instalar o software.

Depois de instalado, inicie o software e selecione Help & gt View Installed Help

O software a seguir instalará a Ajuda:

Nexus 2, Shōgun, Tracker 3, Blade 3, Pegasus, CaraLive, CaraPost, Polygon 4

Como Nexus (Plug-in Gait) e Polygon calculam os Parâmetros do Ciclo de Marcha (Espacial e Temporal)?

No Nexus, a Operação de Pipeline de Gerar Parâmetros do Ciclo de Marcha pode ser usada em conjunto com os eventos de Marcha para calcular os Parâmetros Espaciais e Temporais do Ciclo de Marcha padrão.

No Nexus, os parâmetros são baseados no primeiro ciclo para cada lado onde todos os eventos necessários são encontrados.

O Polygon pode recalcular os parâmetros e defini-los usando o primeiro ciclo (padrão) ou a média de todos os ciclos definidos. [Para usar a média de todos os ciclos definidos no polígono, clique com o botão direito do mouse no objeto do teste & # 8217s nó Análise, selecione Propriedades e marque a caixa rotulada Usar média de ciclos nomeados.]

Esses Parâmetros e unidades disponíveis (as unidades podem ser alteradas na caixa Gerar Opções de Parâmetros do Ciclo de Marcha) são:

Cadência - 1 / s 1 / min passos / s passos / min passadas / s passadas / min

Velocidade de caminhada - m / s cm / s mm / s pol./s

Tempo da Etapa - s%

Eventos de contato / foot off - s%

Suporte individual / duplo - s%

Passo / comprimento do passo - m cm mm pol

Os parâmetros de distância são baseados na posição do marcador no momento, por padrão, o marcador do dedo do pé (LTOE para a esquerda e RTOE para a direita) é usado para o cálculo. Isso pode ser alterado na caixa Opções da operação de pipeline de Gerar parâmetros do ciclo de marcha.

Cadência: número de passadas por unidade de tempo (geralmente por minuto). A cadência esquerda e direita são primeiro calculadas separadamente com base em uma única passada ou uma média dos ciclos de marcha definidos. A cadência geral é a média da esquerda e da direita.

Tempo de passada: tempo entre sucessivos golpes ipsilaterais com o pé.

Tempo da etapa: tempo entre o contato do pé contralateral e o seguinte ipsilateral, expresso em segundos ou% GC.

Os eventos de contato / desligamento do pé são todos expressos em relação ao ciclo da marcha ipsilateral, seja como tempo absoluto do contato do pé ipsilateral ou como% GC, de acordo com a preferência do polígono. Cálculos de suporte único e duplo são válidos apenas para caminhada, ou seja, quando os eventos de contato / pé desligado contralateral acontecem na fase de apoio ipsilateral.

Foot off: momento do pé ipsilateral fora.

Contato do pé oposto: tempo de contato do pé contralateral.

Pé oposto: momento do pé contralateral.

Suporte único: tempo desde o pé contralateral até o contato do pé contralateral.

Suporte duplo: tempo do contato do pé ipsilateral ao pé contralateral desligado mais tempo do contato do pé contralateral ao pé ipsilateral desligado.

Índice limp: o tempo de contato do pé com o pé desligado do pé ipsilateral é dividido pelo tempo de contato do pé com o pé mais o tempo de apoio duplo. Em outras palavras, o índice de claudicação calcula o tempo que o pé ipsilateral está no chão e o divide pelo tempo que o pé contralateral está no chão durante o GC ipsilateral.

Todas as medidas de distância e velocidade usam um marcador de referência em cada pé, por padrão os marcadores LTOE / RTOE, mas isso pode ser alterado nas preferências. A posição do marcador é avaliada em 3D no momento dos eventos.

Quatro pontos 3D são definidos:

IP1 é a posição do marcador ipsilateral no primeiro contato ipsilateral do pé.

IP2 é a posição do marcador ipsilateral no segundo contato do pé ipsilateral.

CP é a posição do marcador contralateral no contato contralateral do pé.

CPP é o CP projetado no vetor IP1 a IP2.

Comprimento da passada: é a distância de IP1 a IP2.

Comprimento do passo: é a distância do CPP ao IP2.

Largura do passo: é a distância do CP ao CPP.

Velocidade de caminhada: é o comprimento da passada dividido pelo tempo da passada.

Como o Polygon exibe a força e os momentos da parte inferior do corpo do plug-in?

As Forças calculadas pelo Plug-in Gait e exibidas pelo Polygon estão no quadro de coordenadas locais do segmento distal na Cadeia Cinética hierárquica. Isso significa que as forças da articulação do tornozelo são registradas no sistema do eixo do segmento do pé. Portanto, a força de reação do solo Z será semelhante à força do tornozelo X, a força de reação do solo Y será semelhante à força do tornozelo Z e a força de reação do solo X será semelhante à força do tornozelo Y.

Para a tíbia, isso mudará conforme a orientação do eixo agora muda. Z force is therefore compression or tension at the joint, Y force is mediolateral forces at the joint while X force is Anteroposterior forces at the joint.

The positive force acts in the positive direction of the axis in the distal segment on which it acts and a negative force acts in the negative direction along the axis.

In Plug-in Gait we use an external moment and force description. That means that a negative force is compression and a positive force, tension, for the Z axis. A positive force for the right side is medial and negative lateral for the Y axis and a positive force is anterior and negative posterior for the X axis.

How does Polygon store reports? Are whole folders required?

The report uses a whole folder because there are potentially quite a few files that are associated with a single report. For example, there is one Rich Text Format file per text pane, one data file, one report file, any number of movie (*.avi) files, marker set files (*.mkr) and so on.

To avoid the files being spread around and to keep everything nicely in one place, Polygon copies everything to the report folder. This means that you could end up with more than one copy of your movie files, for example, which may seem unnecessary to you. However, in this day and age when hard disk storage comes in dozens of gigabytes and is cheaper than ever before, the decision was made to copy all the files to keep the report tidy rather than to try and optimize for storage.

What does the EMG envelope algorithm in Polygon do?

The envelope algorithm in Polygon is intended to produce a curve which gives an idea of the shape of the underlying raw EMG. It is based on a running average algorithm, but has been modified to give better response to the peaks in the raw EMG data (a simple running average will produce an envelope curve which fits nowhere near the peaks of the raw data).

The envelope algorithm takes a single parameter which is the width of the envelope as it passes through the raw data. What this means is that if you have entered, say, 10 ms for the envelope width parameter, any given sample in the time series will be affected by the sample within a 10ms envelope either side of it. If this sounds too technical suffice to say that the lower the value the more “tight fitting” the envelope will be.

Furthermore, increasing the value will “smooth” the curve. There’s no way to determine a “perfect” value, so the best strategy is to experiment a bit – try to overlay the enveloped EMG using different parameter values (for example 10,20,30,40 and 50) and the raw EMG to get an idea of what the algorithm produces given different parameter values.

How do I create a New Polygon Report?

You can create a new Polygon Report as a blank report or as a report based on a template. There are several ways to create a new blank report:

Create a Report from Data Management (Eclipse)

On the Home ribbon, click the Data Manager Button or press F2.

In the Data Manager, double-click the trial you want to add to the report.

Click the New Report button on the toolbar. A new report is added below the trial you selected.

Type a name for the report.

Double-click the report and click Não when asked if you want to base the report on a template. A blank report is created.

Import data into the report.

Create a Report from within Polygon

On the Home ribbon, click the down arrow on the New button.

From the Quick Access Bar above the Ribbon, click the down arrow on the New button.

Select Blank from the drop-down menu.

In the New Report dialog, browse to the location where you want to save the report.

Dentro Report Name, enter a name for the report. Then click OK.

If you are creating the report in a new directory, click sim to the prompt, Directory not found. Create? A blank report is created.

Creating a Report from a Template

Note: You will require a Polygon Template (.tpl file) available.

Use one of the above mentioned methods to create a blank report (when using the New button select template from the drop-down menu).

When asked if you want to base the report on a template click sim.

In the window that opens, browse to the location of the template you want to use.

How do I import Data into a Polygon Report?

The Data Bar is empty until you import trial data (*.c3d files) that were processed in Vicon Nexus. Data can be imported from either the Data Manager (Eclipse) or the Home Ribbon. You can import a variety of files into Polygon reports, including web pages, videos, and more. Most files become panes within Polygon for which you can create hyperlinks. Files that you can import:

Vicon (*.c3d) Polygon External Data (*.pxd)
VCM Report (*.gcd) 3D Mesh (*.obj)
Marker Set (*.mkr) Adobe Acrobat (*.pdf)
Video (*.mpg, *.avi) PowerPoint (*.ppt, *.pptx)
Web Page HTM

Import Data from Data Manager (Eclipse)

Open the report for which you want to import data or create a new report.

On the Home ribbon, click the Data Manager button or press F2.

With Data Manager still open, double-click on the trial name you want to add to the report.

The Trial will appear in the Data Bar

When you are finished, close the Data Manager.

Import Data from the Home Ribbon

Import File:

Open the report for which you want to import data or create a new report.

On the Home ribbon, click Import File.

In the Import File dialog, browse to the location of the c3d file you want to import.

Double click on the c3d file (In the drop-down you can filter the file types – optional).

The Trial will appear in the Data Bar.

Import Video:

Open the report for which you want to import data or create a new report.

On the Home ribbon, click Import Video.

In the Import File dialog, browse to the location of the .avi or .mpg file you want to import.

The Video will appear in the Data Bar.

Import Web Page:

Click the Home button on the Ribbon.

Click the Import Web Page button.

In the window that opens, enter the web page URL.

The web page opens in an HTML window in the Report Workspace. Web pages can be accessed by clicking Multimedia Files in the upper portion of the Data Bar. Then double-click the web page in the lower portion of the Data Bar


How can I find a natural border polygon of a set of arbitrarily placed non-overlapping rectangles?

Given a set of arbitrarily placed, non-overlapping rectangles how could I find a polygon that represents a natural border around the points that make up the rectangles? To illustrate:

How can I find either the green or blue line? I have tried, but not succeeded, with the following:

  • Walking using pathfinding. I struggled to find a heuristic that made sense.
  • Walking using distance threshold and choosing next based on angle about the vector of the previous two points (e.g. always turn right). This kinda worked but had a lot of weird edge cases that didn't.
  • Procedurally building up the polygon starting with an initial diamond of the left, top, right and bottom most points. The idea was to detect if a point was inside the polgyon already, in which case ignore it, but when I needed to insert I didn't know how to determine the insert position.

I'm unsure if I'm missing something obvious or if this is actually a harder problem than I initially expected.


2020 Minnesota State Building Codes

​​​​​​The 2020 Minnesota State Building Code is effective March 31, 2020, except for the Minnesota Mechanical Fuel Gas Code, which is effective April 6, 2020.

It is the minimum construction standard throughout all of Minnesota. Although it is not enforceable by municipalities unless it is adopted by local ordinance, it creates a level playing field for the construction industry by establishing the Minnesota State Building Code as the standard for the construction of all buildings in the state.

2020 Minnesota Codes View code Where to purchase Fact sheet
Codes overview: Guide to the State
Building Code
2020 Minnesota Building Code View ICC Fact sheet
2020 Minnesota Residential Code* (English version) View ICC Fact sheet
2020 Minnesota Residential Code* (Spanish version) View ICC Fact Sheet
2020 Minnesota Energy Code View ICC Fact sheet
2020 Minnesota Accessibility Code View ICC Fact sheet
2020 Minnesota Mechanical and Fuel Gas Code View ICC Fact sheet
2015 Minnesota Plumbing Code View IAPMO Fact sheet
2020 Minnesota Conservation Code for Existing Buildings View ICC Fact sheet
2020 Minnesota Fire Code View ICC
Minnesota Electrical Code View Fact sheet
2020 Minnesota Building Code Administration View Fact sheet
2020 Minnesota Provisions to the State Building Code View Fact sheet
2020 Minnesota Elevator and Related Devices Code View Fact sheet
Minnesota Solar Energy Systems View
Minnesota Floodproofing Regulations View View Fact sheet
Minnesota Manufactured Home Code View Fact sheet
Minnesota Prefabricated Structure Code View
Minnesota Industrialized/Modular Building Code View View Fact sheet
Minnesota Storm Shelters (Manufactured Home Parks) View Fact sheet
Minnesota High Pressure Piping Code View Fact sheet
Understanding Amendments to the 2020 Minnesota State Building Code View

Please note: The detailed version of each code linked above is available here for your convenience. However, the Office of the Revisor of Statutes publishes the official codes.


In the absence of further clarification on what the restrictions are, I'm going to assume two meshes that are basically polygon soup (a set of triangles, possibly unconnected).

You're basically doing n*m triangle to triangle collisions (where n is the number of triangles in object A, m the number in object B). The easiest way is to simply do a brute force closest-point-between-two-triangles for every pairing of triangles. So check triangle 0 in object A against triangle 0 in B, then 1 in B, 2, etc.

Triangle to triangle checks are pretty straightforward, if you have the RTC book mentioned you probably have a better algorithm already. But basically you only have three cases

  1. the two triangles are parallel (in which case any point on the triangle is equally close to the other triangle)
  2. an edge on one triangle is parallel to a line which crosses the triangle. So you can find two lines of equal length, one contained in the first triangle, one in the second. As those lines are parallel to each other, every point along those lines is equally close to the equivalent point on the other triangle.
  3. a single vertex of one triangle is closest to some point on the plane inside the other triangle.

The 3rd case is just a closest-point-on-triangle-to-point, for which you project the point onto the plane of the triangle (i.e. find the closest point to your target on the plane which contains the triangle), and then constrain it to be within the triangle. If the projected point is within the triangle, then you have your closest point, otherwise you now have 3 closest-point-on-line-to-point problems, which you can solve with dot products (and pick the smallest of the three solutions).

Again you can brute force the triangle-triangle check, by iterating every vertex in triangle X and doing a closest-point-to-triangle check against triangle Y then iterating every vertex in Y and doing a closest-point-to-triangle check against X. Now for each vertex you have a distance to the other triangle. If you have one vertex which is strictly closer than all the others, you're in case 3, and you're done. If you have two vertices on the same triangle equally close to the other triangle, you're in case two. If all three verts of one triangle are equally close to the other, you're in case 1.


Reflection Coefficient Calculation

Reflection is used in the RMD model when the transmitter and receiver are line-of-sight. If the ground reflection key is set to sim on the Propagation Model screen, the program finds the reflection point by searching the entire path between the transmitter and receiver to find that point where the angle of incidence is equal to the angle of reflection. Usually no point exists where these angles are exactly equal, so the program uses a small angular bracket in its search. Sometimes no reflection point is found. In that case no reflection ray contribution is added at the receiver.

When a reflection point is found, the program will compute the complex reflection coefficient for horizontal or vertical polarization using the following equations:

The perpendicular and parallel subscripts indicate the reflection coefficients are for radiation that is perpendicular and parallel to the plane of incidence. In the case of the ground reflections dealt with here, perpendicular corresponds to horizontal polarization and parallel corresponds to vertical polarization. The complex reflection coefficients given above are for a smooth surface. The complex permittivity is given by:

Onde &epsilonr is the relative dielectric constant of the reflection surface, &sigma is the conductivity of the reflecting surface in Siemens/m (both entered by you on the Propagation Model screen), and &lambda is the wavelength of the incident radiation. The smooth earth reflection coefficient can be further modified to take into account rough earth using the roughness attenuation factor &rho.

Onde ∆h is the standard deviation of the normal distribution of the surface roughness. In the RMD model algorithm, the smooth earth reflection coefficient for horizontal and vertical polarization is calculated as described above to find the magnitude and phase of the reflected ray. This reflected ray is then vectorially added to the directly received ray to yield the net field strength at the receive location under study.


Point class

As mentioned above, this class definition needs to be better formatted. This first time, I'll give an example of what I think good formatting would look like:

Notice how I've standardized on the number of blank lines, outdented my accessibility specifiers, broke member functions up into logical groups, and so forth. This is significantly more readable.

The code file needs the same treatment applied. Also, I recommend placing documentation comments above the function definition, rather than out to the side. This makes things look much neater, especially where you have functions with multiple parameters (or parameters with long names). But consider whether you really need comments for these functions at all! It should be obvious by looking at the name that Point::Point is a constructor for class Point , so you can omit that. And "function update X" barely even makes sense. If you're going to write documentation comments, make them meaningful and professional looking. If they just restate things that are obvious from the name of the function, leave them off!

If you're going to use your current error-handling strategy, you should report them via std::cerr , rather than std::cout . But I don't think this is the best approach. In C++, you will generally want to throw an exception when you are passed an invalid parameter that you do not know how to deal with. The caller can then catch this exception and handle it however they want, including displaying an error message. This better preserves a division of responsibility: what if I want to use your Point class in a GUI or remote application where the output from std::cerr is not visible? If you used an exception-based error-handling strategy, I could catch the exception and present the error to the user however I wanted.

If you didn't want to introduce the complexity of exceptions and feel that you can assign reasonable "default"/"fallback" values, then you could simply assert upon receiving an invalid parameter. This would allow the caller to fix their bug in a debugging build, without introducing any error-reporting overhead in release builds. This is more similar to what you have now:

In keeping with the "separation of concerns" argument presented above, I would não have a print method as part of my Point class. A Point object should not know how to "print" itself. That's far beyond its level of abstraction. If you wanted to facilitate printing a Point object, you could simply define a toString method:

Of course, since this method doesn't actually require access to any of the private members of Point , it would enhance encapsulation to make it a free function. By doing so, you could even make it work analogously to the standard library's to_string family of functions:

I hesitate to mention this because it's somewhat advanced and probably not something you should think about when writing code, but I recently refactored usage of my own Point class to always pass Point objects by value, instead of by const-reference. The reason is that it is a very simple class with only two member variables. Most compilers will generate more efficient code if such types are passed by value, rather than by const-reference (which is usually implemented behind-the-scenes as by-pointer). This doesn't affect correctness, of course, and if you have no idea what I'm talking about, you can just ignore it. When in doubt, especially as a beginner, it is reasonable to always pass class types by const-reference, unless you need a local copy.


Link distance and shortest path problems in the plane ☆

This paper describes algorithms to compute Voronoi diagrams, shortest path maps, the Hausdorff distance, and the Fréchet distance in the plane with polygonal obstacles. The underlying distance measures for these algorithms are either shortest path distances or link distances. O link distance between a pair of points is the minimum number of edges needed to connect the two points with a polygonal path that avoids a set of obstacles. The motivation for minimizing the number of edges on a path comes from robotic motions and wireless communications because turns are more difficult in these settings than straight movements.

Link-based Voronoi diagrams are different from traditional Voronoi diagrams because a query point in the interior of a Voronoi face can have multiple nearest sites. Our site-based Voronoi diagram ensures that all points in a face have the same set of nearest sites. Our distance-based Voronoi diagram ensures that all points in a face have the same distance to a nearest site.

The shortest path maps in this paper support queries from any source point on a fixed line segment. This is a middle-ground approach because traditional shortest path maps typically support queries from either a fixed point or from all possible points in the plane.

The Hausdorff distance and Fréchet distance are fundamental similarity metrics for shape matching. This paper shows how to compute new variations of these metrics using shortest paths or link-based paths that avoid polygonal obstacles in the plane.


2 respostas 2

I also had exactly the same thoughts as you. For my final university project I studied different methods of voxel mesh smoothing. The best method I found was Surface Nets. It produces a result that looks very similar to March Cubes but without all that lookup table hassle. You can also choose how smooth you want the object by performing more passes of the algorithm.

The basic procedure is to do what Marching Cubes does to start with:

  • Find all the points of voxel volume that intersect the current voxel cube
  • Interpolate to get the edge of that volume

You then take these interpolated points and find their 'centre of mass', this gives you a point to place a vertex at. From this vertex position you connect outwards to other vertices in neighbouring voxels.

I currently do not have access to any of my source code to help expand on this solution but I will edit this answer as soon as possible to make it clearer and to support the article I've referenced.

There's going to be a lot of code splurged below, followed by an open source licence, feel free to ask me more questions!

So here is my GetCentreOfMass function, I'll try to break down in comments:

Get Centre Of Mass Method

This is pretty hefty and it's only getting the centre of mass but it does the job well. To fully build the mesh I store this centre of mass and an edge mask (for each voxel 8 bits: 1 for an edge on the surface and 0 for an edge not on the surface) together in a structure called a NetVertex. I then use these to create the mesh, the vertices are easy:

Mesh Vertex Generation Method

Triangles of the mesh are somewhat more complicated:

Mesh Triangle Generation Method

All the source code I've added to this post follows the standard MIT open source licence:

Disclaimer: Not tested yet. Edit: Tested and works, code on demand.

The configuration, or rather the mesh, can be calculated in a slightly simpler, in my opinion, way, although this is less efficient, but can be memoized, I think.

Lets call the nodes that have the active/inactive state as "ControlNode", and the 3 nodes that each of those hold "SubNode".
So each Cube holds 8 ControlNodes and 12 SubNodes.

The Cubes need to store this data in such a way that you know which SubNodes are neighboring which ControlNodes. Remember that the ControlNodes themselves have 3 SubNodes where one or more usually land outside the Cube, we don't want those.

Now to get the vertices that we need to build the mesh for this Cube:
1) Create an array for the states of the SubNodes. Yes SubNodes.
2) Iterate over the active ControlNodes, turning "on" the adjacent SubNodes, or turning them "off" if they were already "on".
3) The SubNodes that are "on", after step 2, are the vertices you need to use to build the mesh.
4) Alas, we don't know the direction of the surface, but we can calculate it! The Normal can be calculated by simply calculating the average positions of the selected SubNodes (A) and active ControlNodes (B).
Vector AB should be the Normal.
5) Having the vertices, and the normal, you can construct triangles from the data collected.

Extra: If you want to make this work faster, save the configuration as a number, as in the original algorithm, and store the results for each configuration as you find them.

Edit: A simple iteration will not work for cases where the configuration creates 2 separate meshes!
A solution to that is placing the active nodes in a list, and running a "paint bucket" style search, such as BFS, to get a cluster of active ControlNodes that are all "connected" (meaning forming one mesh), removing the affected ControlNodes from the list. And if any ControlNodes remain, then we do the same for that group as well.
Adjacency for the BFS can be determined by proximity, since the distance between neighboring ControlNodes is known.

Not as simple as I first thought, but it should provide a general case solution.
Hope that answers the question.


Assista o vídeo: ENGENHARIA TOPOGRAFIA - Questões de Provas 02 - Poligonais - Cálculo do Perímetro (Outubro 2021).