Determinando o maior segmento de linha no polígono que passa pelo centróide?

8

Um aluno de doutorado me abordou recentemente perguntando como determinar a linha reta mais longa que passa pelo centróide de um polígono, sendo a saída uma polilinha e não apenas uma tabela de números. A polilinha estaria dentro do polígono começando na borda em uma extremidade, passando pelo centróide e depois na extremidade oposta.

Alguém sabe como calcular isso?

Estou surpreso (mas acho que estou mostrando minha ignorância) que essa não seja uma interface no ArcObjects.

O polígono representa a borda da cratera de um vulcão sem ilhas, portanto o polígono pode ter uma forma irregular.

Hornbydd
fonte

Respostas:

11

Um algoritmo de varredura radial funcionará bem, Duncan. Esteja ciente de que o centróide pode estar fora do polígono; portanto, não haverá solução nesses casos. Observe também que essa construção é estranha: enquanto o centróide é uma propriedade global do polígono, a linha que você está construindo é uma propriedade local do polígono nas proximidades desse centróide. A combinação não faz sentido para a maioria das análises geométricas ou físicas em que o polígono pode ser não-convexo ou em forma de estrela em relação ao centróide. (Isso explica por que você não o encontra no ArcObjects nem, provavelmente, em qualquer outro lugar.) Você pode perguntar mais profundamente ao aluno para descobrir o que ele está tentando fazer com essa construção para garantir que ela atenda ao objetivo pretendido. .

whuber
fonte
1
Uau, obrigado pela resposta mega rápida! Vocês dois me deram algumas palavras-chave para procurar. "Varredura radial" parece complexa ...
Hornbydd 1/10/10
Observe também que existem polígonos onde não há "a linha reta mais longa"; em vez disso, pode haver muitas linhas possíveis. [[Além disso, eu aposto $ 1 que o aluno em questão está projetando uma pesquisa (s) transecto].]
Dan S.
@Ornbydd: Há complexo, e há complexo. A implementação de uma varredura radial não é tão difícil quanto a geometria computacional, mas mergulhar na escrita de código de geometria computacional pela primeira vez pode ser intimidante. Ficaria feliz em digitar algum pseudocódigo para você, se você quiser um ponto de partida.
Dan S.
Dan, agradeço sua oferta, mas não sou a supervisora ​​dos alunos, apenas um cara aleatório que ela havia contatado. Embora como desenvolvedor de GIS eu seria interessante ver alguns pseudocódigos para ter a idéia básica de uma varredura radial, mas por favor não gaste tempo com isso, pois você já me deu algumas dicas que são muito apreciadas.
Hornbydd
2
Em uma nota mais clara, postei minha pergunta neste site, vi a resposta do whuber disparar e fiz um café, voltei, digitei no google "centróide de polígono de varredura radial" e voltei imediatamente a esta página! Como o Google encontrou essa página tão rapidamente e a integrou à sua pesquisa, a mente confunde.
Hornbydd 01/10/10