Verificar se Três pontos gps estão em uma reta[RESOLVIDO]
5 respostas
W
wilkem
Bom dia, eu estou tentando verificar se três pontos gps estão em linha reta, mas nao estou consiguindo aplicar uma formula e não sei se é possivel
tentei utilizar a formula Pontos colineares.
Mas surgiu a seguinte duvidas como latitude e longitude são linhas no globo que são formados por graus apos chegarem na linha do equador os valor volta a zero.
Tentei utilizar da seguinte forma e sem muito sucesso.
DoubleMBA=((53.443360-53.447952)/(24.937761-24.931301));DoubleMBC=((53.443360-53.450591)/(24.937761-24.938967));if(MBA==MBC)System.out.println("os Pontos estão em linha");
Peguei as coordenadas no google maps.
Pode ser falta de conhecimento meu mas não consigui solucionar esse problema.
Bom dia, eu estou tentando verificar se três pontos gps estão em linha reta, mas nao estou consiguindo aplicar uma formula e não sei se é possivel
tentei utilizar a formula Pontos colineares.
Mas surgiu a seguinte duvidas como latitude e longitude são linhas no globo que são formados por graus apos chegarem na linha do equador os valor volta a zero.
Tentei utilizar da seguinte forma e sem muito sucesso.
DoubleMBA=((53.443360-53.447952)/(24.937761-24.931301));DoubleMBC=((53.443360-53.450591)/(24.937761-24.938967));if(MBA==MBC)System.out.println("os Pontos estão em linha");
Peguei as coordenadas no google maps.
Pode ser falta de conhecimento meu mas não consigui solucionar esse problema.
Ola amigo, tudo bem?
Segue um exemplo de como você pode fazer isso de uma maneira mais elegante.
// Define uma classe Coord para inserir as coordenadaspublicclassCoord{doublex,y;publicCoord(doublex,doubley){this.x=x;this.y=y;}}// Função para efetuar o cálculo da linearidadepublicstaticbooleanisLinear(Coordc1,Coordc2,Coordc3){doubled1=(c2.x-c1.x)/(c2.y-c1.y);doubled2=(c3.x-c1.x)/(c3.y-c1.y);return(d2==d1);}
Espero ter ajudado...
R
regis_hideki
Acho que você precisa definir o que é “três pontos em linha reta”. Pelo fato da Terra ser redonda, um trecho que parece ser “linha reta” no mapa, deixa de ser no globo. Por exemplo: se você der uma volta “em cima” da linha do equador, você andou em “linha reta” pela sua definição, ou não. Se sim, acredito que você queira três pontos coplanares e não colineares.
W
wilkem
Bom dia galera consigui resolver meu problema utilizando o algoritmo do Ramer Douglas Peucker.
V
ViniGodoy
Ué, mas esse é um algoritmo para simplificar curvas. Você considera “reta” quando todos os pontos podem ser simplificados?
W
wilkem
Então eu iria fazer através da equação da reta para diminuir o numero de pontos em um área mapeada, pois verifiquei que havia muitos pontos na reta mais seria necessário um certa tolerância com auxilio desse algoritmo me ajudou.
Então so um exemplo que ja testei numa área com 421 pontos utilizando a tolerância de 5.5 diminui para 98 pontos.