admin 管理员组

文章数量: 887021

【基于STK Components(STK组件)的.Net4.5编程】之[SatelliteVisibility.sln]卫星可见性计算

项目代码及swf录制视频下载地址:
【带运行效果录屏】卫星可见性计算(基于STKComponents组件编程).zip-其它文档类资源-CSDN下载

Code is everything!直接上代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

//Add using directives for STK Components namespaces:
using AGI.Foundation;
using AGI.Foundation.Access;
using AGI.Foundation.Access.Constraints;
using AGI.Foundation.Celestial;
using AGI.Foundation.Coordinates;
using AGI.Foundation.Geometry;
using AGI.Foundation.Graphics;
using AGI.Foundation.Graphics.Advanced;
using AGI.Foundation.Platforms;
using AGI.Foundation.Propagators;
using AGI.Foundation.Time;


namespace SatelliteVisibility
{
    public partial class Form1 : Form
    {
        // for user input values.
        public double longitude;
        public double latitude;
        public double minimumElevationAngle;
        public TwoLineElementSet tle;
        public JulianDate startDate;
        public JulianDate endDate;

        // for animation.
        public ModelPrimitive satellite;
        public MarkerBatchPrimitive facility;
        public PolylinePrimitive orbitLine;
        public PolylinePrimitive accessLine;
        public List<Cartesian> orbitPoints;

        // for access computation and animation update.
        public Platform satellitePlatform;
        public Platform facilityPlatform;
        public PointEvaluator satellitePositionEvaluator;
        public AxesEvaluator satelliteOrientationEvaluator;
        public PointEvaluator facilityInertialEvaluator;
        public TimeIntervalCollection accessIntervals;

        public Insight3D Insight3D;

        public struct ViewingOpportunity
        {
            public GregorianDate StartDate;
            public GregorianDate EndDate;
            public double ApproachAzimuth;
            public double DepartureAzimuth;
        }

        public Form1()
        {
            InitializeComponent();
            //JSLS添加
            Insight3D = new Insight3D();
            Insight3D.Location = new System.Drawing.Point(8, 8);
            Insight3D.Name = "Insight3D";
            Insight3D.Size = new Size(752, 752); //三维地球视图的尺寸大小,需要调试运行时调整

            tabPage_Visualization.Controls.Add(Insight3D);

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //获取地球中心体——我们需要它来计算接近和离开的方位角,卫星在地球参考系中的位置,以及卫星的方向轴。
            EarthCentralBody earth = CentralBodiesFacet.GetFromContext().Earth;

            // 从[hs601.mdl]创建 卫星对象
            satellite = new ModelPrimitive("hs601.mdl");
            satellite.ReferenceFrame = earth.InertialFrame;
            orbitLine = new PolylinePrimitive(PolylineType.LineStrip, SetHint.Frequent);
            orbitLine.ReferenceFrame = earth.InertialFrame;
            accessLine = new PolylinePrimitive(PolylineType.Lines, SetHint.Frequent);
            accessLine.ReferenceFrame = earth.InertialFrame;

            // 用[facility.png]创建标记以表示场景中的设施
            facility = new Mar

本文标签: 组件 见性 Components STK 卫星