2

I'm neither a geometry student or a native speaker, so apologies if my question isn't clear enough.

As part of my master's thesis, I have to plot bounded regions of the night sky onto a 2D plane. My current solution consists of a rectangular mapping where (ra, dec) values are plotted to (x,y) coordinates. While this approach works well enough for small regions in relatively low ascension values, the resulting plots get progressively distorted for higher ||dec|| values, as expected.

At some point I'll have to change this to a more versatile approach. Thing is, I'm not exactly clear on what to search for. I guess I have to be able to map angular coordinates to a square (or hexagon) subgrid, but most search results I get are concerned with full-surface mapping.

I know I won't be able to achieve a perfect, distortion-free plotting, but I don't require perfect solutions; only a more general projection that will work well near the poles. Something like this, where I put my Photoshop skills to work and try to simulate a 20º region under my current approach and the one I'm looking for:

What I want:

img

What I have:

img

TL;DR: how do I convert between coordinates on a sphere (ra/dec) to cartesian coordinates on a locally-defined grid?

Spektre
  • 41,942
  • 8
  • 91
  • 312
  • 1
    Sorry for just bringing a link. Does [this](https://math.libretexts.org/Bookshelves/Calculus/Book%3A_Calculus_(OpenStax)/12%3A_Vectors_in_Space/12.7%3A_Cylindrical_and_Spherical_Coordinates) help? – jweyrich Feb 18 '21 at 18:05
  • 1
    Very interesting question, however, you're much more likely to get useful responses on math.stackexchange.com instead. That said, let me ask a clarifying question. Do I understand correctly that you want a grid such that the apparent area (I guess this is exactly the solid angle) of the grid elements is uniform? and you need to express the corners of the grid elements as (ra, dec)? Well, I guess that's two questions. A possible idea: maybe you can get some inspiration by looking at world map projections. Maybe in particular looking at equal-area projections, e.g. Mollweide projection. – Robert Dodier Feb 18 '21 at 18:35
  • 1
    @jweyrich I think OP is a little bit beyond basic coordinates. – Robert Dodier Feb 18 '21 at 18:37
  • 1
    x = r*sin(theta)*cos(phi) y = r*sin(theta)*sin(phi) z = r*cos(theta) – evgeni fotia Feb 18 '21 at 19:16
  • 1
    @evgenifotia That projection yields the keystone-shaped elements which OP says he doesn't want. – Robert Dodier Feb 18 '21 at 19:40
  • Thank you all for the input! Indeed, I want to avoid area/shape distortions as much as possible. No projection will yield me that, but they maintain more than acceptable accuracy around their center point. @Robert Dodier, thanks for the suggestion! I will repost this question on math.stackexchange. – António Dias Feb 18 '21 at 19:53
  • 1
    see [WebGL - display a sphere on a plane](https://stackoverflow.com/a/31829666/2521214) – Spektre Feb 19 '21 at 09:02
  • @Spektre thank you, that was a very useful link! I don't know why I never thought about redefining the coordinates around the plot's center instead of using a global projection frame, as that's a very intuitive solution!... – António Dias Feb 19 '21 at 21:57
  • 1
    @AntónioDias Took me a while to figure it out. The results are impressive especially on glass CNC engraved images this was developed for. Approach has one draw back though you can not map too big objects (covering whole circumference of surface) because such transform will lead to overlaps and self intersection especially on surfaces with low radius of curvature. This geometric projection is relatively easy you would not believe what crazy geometry related stuff I dealt with in recent years [this is just a tip of iceberg](https://stackoverflow.com/q/29166819/2521214) – Spektre Feb 20 '21 at 07:04

0 Answers0