我已经解析了星历数据,以便获得在我当前位置上方可见的卫星的 ECEF(或纬度/经度)位置。我很想在我的 C# 程序的天空图中显示这些位置。
我在我的 GUI 中添加了一个图片框,并尝试缩放要显示的 x/y 值,但我不相信正在显示的位置与我当前的位置相关。
有没有人有关于如何做到这一点的任何示例或示例代码?
我在 C# winform 中执行此操作。
private const double CENTER = 110; //center of drawing (pixels)
private double SCALE_FACTOR = 89.0 / 90.0; //pixels from 90deg to 0 on drawing
.
.
.
private void drawSatellitePos(int svPrn, double elevation, double azimuth) //radians
{
double r = 90.0 - ConvertRadiansToDeg(elevation);
double theta = 90.0 - ConvertRadiansToDeg(azimuth);
theta = ConvertDegToRadians(theta);
double xLocation = CENTER + SCALE_FACTOR * r * Math.Cos(theta);
double yLocation = CENTER + SCALE_FACTOR * r * Math.Sin(theta);
Console.WriteLine("{0}: x: {1} Y: {2}", svPrn, xLocation, yLocation);
Point point = new Point((int)xLocation, (int)yLocation);
}