Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

254
Views
¿Cómo calcular eficientemente los puntos visibles en una esfera?

Tengo muchos puntos pequeños para dibujar en la superficie de una esfera. Están situados por dos ángulos lat ∈ [-PI/2,PI/2] y long ∈ [-PI,PI] y el mismo radio R .

Mi cámara está apuntando directamente al centro de la esfera, y también está ubicada con ángulos de latitud y longitud. Sin embargo, su distancia desde el centro puede variar, pero siempre es mayor que R , llamémoslo d .

Para cada punto visible, tengo que hacer otros cálculos además del renderizado real, por lo que para hacer que el bucle de animación sea más rápido, me gustaría saber cuáles son visibles y cuáles no.

Lo que he probado:

No los represente si esta condición es verdadera: Math.abs(point.position.long - camera.position.long) > Math.PI/4 && Math.abs(point.position.lat - camera.position.lat) > Math.PI/4

Lo cual solo funciona cuando la latitud de la cámara es 0, porque si estás en un polo, el rango de longitudes que quieres ver es en realidad 2*PI, pero quieres un rango de latitud reducido.

Luego intenté tener en cuenta la latitud al calcular el rango de longitud, usando Math.PI/4 + 3/2*Math.abs(this.rotation.lat) en lugar de solo Math.PI/4 y es mejor pero aún no Perfecto.

Me gustaría saber cómo podría lograr esto y, en el mejor de los casos, tener en cuenta la configuración de la cámara, tal vez con sus matrices de proyección o vista de modelo (uso THREE.js para que estén disponibles) para reducir realmente la cantidad de puntos prestados.

Muchas gracias,

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!