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: 936 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: #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 |
Python - Como usar a biblioteca Pandas do Python em seus projetos de Data Science e Machine Learning JavaScript - Validação de formulários em JavaScript - Como validar um formulário contendo usuário e senha em JavaScript |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |