Longitudo és Latitudo alapján pontkeresés gömbön

Longitudo és Latitudo alapján pontkeresés gömbön
2013-03-06T20:16:38+01:00
2013-03-07T20:15:56+01:00
2022-10-15T23:01:28+02:00
demodemo
OpenGL-ben vagyunk, de ez talán lényegtelen is.

A lényeg: Van egy gömbünk, amin ugye a földgolyó textúrája látható kivetítve. Van egy lat/lon pontunk.

A kérdés: Hogyan lehetne pontosan belőni a gömbön, hogy hol van az a bizonyos longitudo, latitudo? azaz POI?
Mutasd a teljes hozzászólást!
- Fogsz egy (0,0,-1) vektort (ez lesz a lon:0, lat:0, ehhez lehet igazitani a texturat is vagy vice versa)
- Elforgatod a az, (1,0,0) vektor korul lat fokkal.
- Elforgatod a az, (0,1,0) vektor korul lon fokkal.
- Beszorzod a gomb sugaraval.

(elojelekert, lat/lon felcserelesert nem vallalom a felelosseget :D)
Mutasd a teljes hozzászólást!


  • float tx = (float) (rad * Math.cos(latitude) * Math.cos(longitude)); float ty = (float) (rad * -Math.sin(latitude)); float tz = (float) (rad * Math.cos(latitude) * Math.sin(longitude));


    ilyesmit találtam, ez így jó? mert nem akarja az áldást:)
    Mutasd a teljes hozzászólást!
  • radiánban vannak az értékek, vagy fokban? meg úgy tudjuk, hogy a Föld nem tökéletes gömb, ezt kezeled valahogyan?
    Mutasd a teljes hozzászólást!

  • drawPOIOnGlobe(51.500152f, -0.126236f, 2.4f);


    private void drawPOIOnGlobe(float latitude, float longitude, float rad) { float tx = (float) (rad * Math.cos(latitude) * Math.cos(longitude)); float ty = (float) (rad * -Math.sin(latitude)); float tz = (float) (rad * Math.cos(latitude) * Math.sin(longitude)); ...

    vmi ilyesmi most, sajnos matekból kula vagyok:)
    Mutasd a teljes hozzászólást!
  • Igen, az az, amit talaltal.
    Csak a tengelyeket, elojeleket, "deg/rad"-ot be kell lonod, hogy mukodjon.

    Math.cos(latitude/180*pi) <- igy valthatsz at fokot radianba
    Mutasd a teljes hozzászólást!
  • "nem tökéletes gömb"

    De egy monitoron azt nem nagyon lehet eszre venni: 6378km vs. 6371km
    Mondjuk legyen 500pixel a sugara az egyenlitonel a monitoron: ekkor 499.451 pixel magas lesz a sugar fuggolegesen.

    Ami durva, hogy a 8km magas Himalája is csak egy fél pixel, ha 'csak' full HD-ban nézed a egesz foldet.
    Mutasd a teljes hozzászólást!
  • a Föld - Wikipédia szerint a 6371 km az átlagos sugár közelében van, a poláris ennél azért kisebb, kb. 6357, azaz kb. 0,33% az eltérés a két tengely között, ez meg nem számottevő, ha a teljes Földet nézzük Full HD-ban, de ha mondjuk egy magyarországi megye méretben nézed a felszínt, akkor ez a látszólag kis eltérés szerintem befolyásolni fogja az eredményt, (persze te is ezt írtad: "
    Ami durva, hogy a 8km magas Himalája is csak egy fél pixel, ha 'csak' full HD-ban nézed a egesz foldet.
    ",

    nem írt arról, hogy milyen léptékben gondolkodik (csak fokkal számol, vagy perc, másodperc pontossággal), meg felvetheti valaki azt, hogy honnan szerez megye méretben textúrát, stb., azaz vélhetőleg az ő esetében nem játszik a lapultság, ha tényleg csak messziről szemléli,
    Mutasd a teljes hozzászólást!
  • csak globális szinten kell, köszönöm:)

    tehát annyira nem fontos, ha 1 pixelt téved
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd