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

本文档介绍了如何使用STK Components进行.NET4.5编程,特别是关注于 SatelliteVisibility.sln 项目,展示了卫星可见性计算的实现。通过提供的代码示例和带运行效果的录屏视频,详细展示了利用STK组件进行卫星可视性分析的过程。
摘要由CSDN通过智能技术生成

【基于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
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值