I want to write something like a virtual telescope that looks into the night sky.

Till now I've a star catalog and I want to project them into a plane to get a mock picture.

I speculate the projection to be a gnomonic projection, which can be found here and here.

enter image description here

In the second link, an alg on calculating the pixel position of stars.

Forward:
Define
      scale:  number of pixels per degree in the map
      alpha, delta:  Equatorial coordinates of a given position
      alpha0, delta0:  Equatorial coordinates of the map center
      A = cos(delta) x cos(alpha - alpha0)
      F = scale x (180/pi)/[sin(delta0) x sin(delta) + A x cos(delta0)]
then the pixel coordinates in the image are

      LINE = -F x [cos(delta0) x sin(delta) - A x sin(delta0)]
      SAMPLE = -F x cos(delta) x sin(alpha - alpha0)
Reverse:
Define
      X = SAMPLE/(scale x 180/pi)
      Y = LINE/(scale x 180/pi)
      D = arctan[(X^2 + Y^2)^0.5]
      B = arctan(-X/Y)
      XX = sin(delta0) x sin(D) x cos(B) + cos(delta0) x cos(D)
      YY = sin(D) x sin(B)
then the right ascension and declination are

      alpha = alpha0 + arctan(YY/XX)
      delta = arcsin[sin(delta0) x cos(D) - cos(delta0) x sin(D) x cos(B)]
NOTE: The arctangent functions for B and alpha must be four-quadrant arctangents.

However I don't know whether the angles should be in deg or rad, and what's the meaning of SAMPLE and LINE.

And I'm neither sure about using gnomonic projection.

Any help or discussion is welcome.

有帮助吗?

解决方案

Yeah, just perform an ordinary camera projecion.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top