Você está aqui: C++ ::: Topografia e Geoprocessamento ::: Passos Iniciais |
Como converter Rumo em Azimute em C++ - C++ para Topografia e Engenharia CivilQuantidade de visualizações: 1004 vezes |
|
É muito comum, nos códigos que estamos escrevendo para cálculos de Topografia e Engenharia Civil, termos que lidar com conversões de Rumo para Azimute e vice-versa. A palavra azimute, de origem árabe, significa "as direções", e é sempre determinado no sentido horário. Muito utilizado na Topografia, em levantamentos topográficos, o azimute é o ângulo entre o norte magnético, e um ponto levantado, ou entre o norte e um lado de um determinado polígono. Seu valor varia de 0º a 360º. Não esqueça, sempre partindo do norte. O Rumo, por sua vez, é o menor ângulo formado pelo alinhamento norte sul e a direção considerada. Seu valor varia de 0º a 90º e é obtido a partir do norte ou do sul por leste e oeste. Como o rumo expressa o ângulo sempre em função do quadrante em que ele se encontra, temos que acrescentar as siglas NE, SE, SW, NW. A primeira letra indica a origem a partir da qual a contagem é realizada e a segunda letra indica a direção do giro ou quadrante. Dessa forma, valores em rumo quase sempre vêm descritos como graus, minutos e segundos, variando de 0º a 90º e precedidos ou antecedidos pelas siglas discutidas acima. Veja na figura a seguir uma exemplicação de azimute e rumo: ![]() Veja agora o código C++ completo que pede para o usuário informar a direção em rumo e mostra a direção correspondente em azimute: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#include <iostream>
#include <string>
using namespace std;
// função principal do programa
int main(int argc, char *argv[]){
// variáveis usadas na resolução do problema
float rumo, azimute;
string sigla;
// vamos pedir para o usuário informar o valor do rumo
cout << "Informe o valor do rumo: ";
cin >> rumo;
// agora vamos pedir a sigla
cout << "Informe a sigla [NE, SE, SW, NW]: ";
cin >> sigla;
if(sigla == "NE"){
// estamos no primeiro quadrante: 0º a 90º
azimute = rumo;
}
else if(sigla == "SE"){
// estamos no segundo quadrante: 90º1' a 180º
azimute = 180 - rumo;
}
else if(sigla == "SW"){
// estamos no terceiro quadrante: 180º1' a 270º
azimute = 180 + rumo;
}
else if(sigla == "NW"){
// estamos no quarto quadrante: 270º1' a 360º
azimute = 360 - rumo;
}
// mostramos o resultado
cout << "O azimute para o rumo informado é: " <<
azimute << endl;
cout << "\n" << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Informe o valor do rumo: 35 Informe a sigla [NE, SE, SW, NW]: SE O azimute para o rumo informado é: 145.0 Note que o nosso código C++ está considerando apenas os graus, ou seja, não incluímos os minutos e segundos. Em outras dicas do site eu mostro como converter graus, minutos e segundos em graus decimais antes de efetuar os cálculos. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







