Visualizador interativo em C (Raylib) dos conceitos de Azimute/Elevação e do ângulo esférico J entre o eixo de rolagem da aeronave e a direção do alvo.
- Conversão Az/El -> vetor 3D unitário
- Cálculo do ângulo de grande círculo J entre dois vetores na esfera
- Esfera unitária, eixos N-E-Up e vetores R (rolagem) e T (alvo)
- Controles de câmera e de ajuste dos ângulos em tempo real
Se você está começando agora, siga o passo a passo em: TUTORIAL.md
- Azimute do vetor: de +X (Norte) para +Y (Leste), em radianos
- Elevação: do plano XY em direção a +Z (Up)
- Vetor do alvo T:
vT = (cos(ElT)cos(AzT), cos(ElT)sin(AzT), sin(ElT)) - Vetor do eixo R:
vR = (cos(ElR)cos(AzR), cos(ElR)sin(AzR), sin(ElR)) - Ângulo J via produto escalar:
J = arccos( clamp(vT·vR, -1, 1) ) - Verificação por trigonometria esférica:
cos J = sin(ElT) sin(ElR) + cos(ElT) cos(ElR) cos(AzT - AzR)
- Alvo (T): A/D (Az −/+), W/S (El +/−)
- Eixo (R): J/L (Az −/+), I/K (El +/−)
- Reset: R
- Câmera: Botão direito do mouse e arraste para orbitar; scroll ajusta FOV
O projeto usa CMake e busca a dependência Raylib via FetchContent (clona do GitHub se não houver Raylib instalado no sistema).
Pré-requisitos no Linux:
build-essentialcmakegit- Bibliotecas X11:
libx11-dev libxrandr-dev libxi-dev libxinerama-dev libxcursor-dev - OpenGL:
mesa-common-dev libgl1-mesa-dev
Passos:
cmake -S . -B build
cmake --build build -jExecutar:
./build/spherical_trigCMakeLists.txt: configuração de build e Raylibsrc/main.c: renderização 3D, vetores T/R e matemática esférica (J)
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International. Veja o arquivo LICENSE no repositório principal.