Git Product home page Git Product logo

orbit's Introduction

orbit3d (orbit3d)

  • Esse projeto tem intuito de criar um exemplo de Three.Js em Vue 3 Script Setup (Composition API), já que não há exemplos na internet, então adaptei o modelo para tornar um modelo público para utilização. Além de ser um modelo, serve também como uma representação da órbita da terra em relação ao sol e da lua em relação a terra, na velocidade real.

  • Qualquer bug encontrado, gerar um Issue

  • Toda a lógica e funções você encontrará aqui

Escala

  • A escala deste projeto será de 1/10000, neste momento a escala ainda não está 100% assertiva.

Iluminação

  • A iluminação dos corpos selestes, está sendo feita pelo sol, existe uma fonte de emissão de luz dentro do modelo 3d do sol

Orbitas

  • A orbita da terra em relação ao sol está sendo definida nesta parte.

    • Foi utilizada a biblioteca SunCalc para auxiliar na posição da terra e cálculo da velocidade.
  • const moonPhi = ((90 - (moonPos.altitude * 180) / Math.PI) * Math.PI) / 180; const moonTheta = (((moonPos.azimuth * 180) / Math.PI - 90) * Math.PI) / 180; const moonX = moonDist * Math.sin(moonPhi) * Math.cos(moonTheta); const moonY = moonDist * Math.sin(moonPhi) * Math.sin(moonTheta); const moonZ = moonDist * Math.cos(moonPhi); A orbita da lua em relação a terra

  • const pos = SunCalc.getPosition(date, 0, 0); const dist = 150; // Distância média da Terra ao Sol em milhões de km const phi = ((90 - (pos.altitude * 180) / Math.PI) * Math.PI) / 180; const theta = (((pos.azimuth * 180) / Math.PI - 90) * Math.PI) / 180; const x = dist * Math.sin(phi) * Math.cos(theta); const y = dist * Math.sin(phi) * Math.sin(theta); const z = dist * Math.cos(phi); Posição heliocêntrica da terra

Posições

  • moon.position.set(130, 0, 0); Ajusta a posição da Lua em relação à Terra (não a distância, a distância é dentro da função 'animate()' onde tem a variável moonDistance = 30;
  • earth.position.setFromSphericalCoords( distance, azimuth - Math.PI / 2, altitude ); Atualização da posição da terra em relação ao sol
  • earth.position.set(150, 0, 0); Ajusta a posição da Terr em relação ao Sol

Câmera

  • camera.position.set(50, 50, 50); Posição da câmera
  • controls.maxDistance = 10000; Aumenta distância máxima da câmera
  • controls.rotateSpeed = 0.5; Velocidade de rotação da câmera

Futuro

  • Implementar todos os planetas
  • Câmera livre
  • Velocidade real de todos os astros
  • Movimentos de translação
  • Componentizar funções
  • Comportamento gravitacional que um corpo celeste exerce pelo o outro

Licenças

orbit's People

Contributors

mariofbsantos avatar

Watchers

 avatar

orbit's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.