当前位置: 首页 > news >正文

STK Components 二次开发-地面站传感器

上一篇我们说了创建地面站,那么这次我们在地面站添加一些特效。

1. 创建地面站

var locationPoint1 = new PointCartographic(m_earth, new Cartographic(Trig.DegreesToRadians(117.17066), Trig.DegreesToRadians(31.84056), 240.359));
m_facility = new Platform
{Name = "DMZ",LocationPoint = locationPoint1,// Orient the facility using East-North-Up (ENU) axes.OrientationAxes = new AxesEastNorthUp(m_earth, locationPoint1),
};// Set the identifier for the facility in the CZML document. 
m_facility.Extensions.Add(new IdentifierExtension("DSS"));// Configure a glTF model for the facility.
m_facility.Extensions.Add(new ModelGraphicsExtension(new ModelGraphics
{// Link to a binary glTF file.Model = new CesiumResource(GetModelUri("facility.glb"), CesiumResourceBehavior.LinkTo),RunAnimations = false,HeightReference = CesiumHeightReference.ClampToGround,
}));// Configure label for AGI HQ.
m_facility.Extensions.Add(new LabelGraphicsExtension(new LabelGraphics
{Text = m_facility.Name,FillColor = Color.White,Font = new ConstantCesiumProperty<string>("20px"),// Only show label when camera is far enough from the satellite,// to avoid visually clashing with the model.DistanceDisplayCondition = new Bounds(1000.0, double.MaxValue),HeightReference = CesiumHeightReference.ClampToGround,
}));

2.创建传感器

// Define the location of the facility using cartographic coordinates.
var locationPoint = new PointCartographic(m_earth, new Cartographic(Trig.DegreesToRadians(117.17066), Trig.DegreesToRadians(31.84056), 272.359));m_sensorDome = new Platform
{Name = "Sensor Dome",LocationPoint = locationPoint,OrientationAxes = new AxesEastNorthUp(m_earth, locationPoint),
};// Set the identifier for the facility in the CZML document. 
m_sensorDome.Extensions.Add(new IdentifierExtension("SensorDome"));// Define the sensor geometry.
var dome = new ComplexConic();
dome.SetHalfAngles(0.0, Math.PI);
dome.SetClockAngles(0.0, Math.PI * 2);
dome.Radius = 10000.0;
m_sensorDome.Extensions.Add(new FieldOfViewExtension(dome));// Configure graphical display of the sensor dome.
m_sensorDome.Extensions.Add(new FieldOfViewGraphicsExtension(new SensorFieldOfViewGraphics
{//遮罩线颜色DomeSurfaceMaterial = new GridMaterialGraphics{Color = Color.Transparent,CellAlpha = 0.0,},EllipsoidHorizonSurfaceMaterial = new SolidColorMaterialGraphics{Color = Color.YellowGreen,},//贴地透明色EllipsoidSurfaceMaterial = new SolidColorMaterialGraphics{Color = Color.Transparent,},EnvironmentIntersectionColor = new ConstantCesiumProperty<Color>(Color.Red),EnvironmentOcclusionMaterial = new SolidColorMaterialGraphics{Color = Color.Green,},IntersectionColor = new ConstantCesiumProperty<Color>(Color.Transparent),//贴地轮廓LateralSurfaceMaterial = new SolidColorMaterialGraphics{Color =  Color.Red,},EnvironmentConstraint =true,ViewshedOccludedColor = new ConstantCesiumProperty<Color>(Color.Red),ViewshedVisibleColor = new ConstantCesiumProperty<Color>(Color.Red)
}));// Define a rotating axes.
var rotatingAxes = new AxesLinearRate
{ReferenceAxes = new AxesEastNorthUp(m_earth, locationPoint),ReferenceEpoch = m_epoch,InitialRotation = UnitQuaternion.Identity,SpinAxis = UnitCartesian.UnitZ,InitialRotationalVelocity = Trig.DegreesToRadians(5.0), // 5 degrees per secondRotationalAcceleration = 0.0,
};// Define a rotation around X.
UnitQuaternion quaternion = new UnitQuaternion(new AngleAxisRotation(Math.PI / 3.0, UnitCartesian.UnitX));
// Define an angular offset for the rotating axes.
var rotatedOffsetAxes = new AxesFixedOffset(rotatingAxes, quaternion);m_rotatingSensor = new Platform
{Name = "Rotating Sensor",LocationPoint = locationPoint,OrientationAxes = rotatedOffsetAxes
};// Set the identifier for the sensor in the CZML document. 
m_rotatingSensor.Extensions.Add(new IdentifierExtension("RotatingSensor"));// Define the sensor geometry.
m_rotatingSensor.Extensions.Add(new FieldOfViewExtension(new RectangularPyramid
{XHalfAngle = Trig.DegreesToRadians(30),YHalfAngle = Trig.DegreesToRadians(30),Radius = 10000.0,
}));// Configure graphical display of the sensor.
m_rotatingSensor.Extensions.Add(new FieldOfViewGraphicsExtension(new SensorFieldOfViewGraphics
{DomeSurfaceMaterial = new GridMaterialGraphics{Color = Color.Green,CellAlpha = 0.5,},LateralSurfaceMaterial = new GridMaterialGraphics{Color = Color.Pink,CellAlpha = 0.5,},IntersectionColor = Color.White,ShowIntersection = true,ShowEllipsoidHorizonSurfaces = true,
}));

实现效果

相关文章:

STK Components 二次开发-地面站传感器

上一篇我们说了创建地面站&#xff0c;那么这次我们在地面站添加一些特效。 1. 创建地面站 var locationPoint1 new PointCartographic(m_earth, new Cartographic(Trig.DegreesToRadians(117.17066), Trig.DegreesToRadians(31.84056), 240.359)); m_facility new Platfor…...

基于springboot校园车辆管理系统

背景 伴随着社会经济的快速发展&#xff0c;机动车保有量不断增加。不断提高的大众生活水平以及人们不断增长的自主出行需求&#xff0c;人们对汽车的 依赖性在不断增强。汽车已经发展成为公众日常出行的一种重要的交通工具。在如此形势下&#xff0c;高校校园内的机动车数量也…...

通用电气调查网络攻击和数据盗窃指控

通用电气正在调查有关威胁行为者在网络攻击中破坏了公司开发环境并泄露据称被盗数据的指控。 通用电气 (GE) 是一家美国跨国公司&#xff0c;业务涉及电力、可再生能源和航空航天行业。 本月早些时候&#xff0c;一个名为 IntelBroker 的威胁行为者试图在黑客论坛上以 500 美…...

2023亚太赛数学建模A题:采果机器人的图像识别技术思路模型代码

亚太A题&#xff1a;采果机器人的图像识别技术 A题完整思路获取 &#xff1a;获取见文末名片&#xff0c;第一时间更新 中国是世界上最大的苹果生产国&#xff0c;年产量约为3500万吨。与此同时&#xff0c;中国也是世 界上最大的苹果出口国&#xff0c;全球每两个苹果中就有…...

C++ 协程

经典协程辅助入门代码&#xff1a; typedef cotask::task my_task_t; int main() { // create a task using factory function [with lambda expression] my_task_t::ptr_t task my_task_t::create([]() { //创建协程 std::cout ()->get_id() cotask::this_task::get…...

Flutter学习(六)EventBus的使用

背景 项目开发过程中&#xff0c;有些场景&#xff0c;需要跨页面进行数据传递。按照安卓开发的思路&#xff0c;在flutter实现一个事件总线EventBus&#xff0c;进行数据传递 原理 通过dart的签名函数&#xff0c;进行监听集合设置&#xff0c;然后post分发的时候&#xff…...

Linux系统---僵尸进程、孤儿进程

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 键盘敲烂&#xff0c;年薪百万&#xff01; 有了上一篇博客的学习&#xff0c;我们已经简单了解了进程的基础知识&#xff0c;今天我们再来学习两个特殊的进程&#xff0c;僵尸进程和孤儿进程。 …...

SpringBoot中如何优雅地使用重试

1 缘起 项目中使用了第三方的服务&#xff0c; 第三方服务偶尔会出现不稳定、连接不上的情况&#xff0c; 于是&#xff0c;在调用时为了保证服务的相对高可用&#xff0c;添加了超时连接重试&#xff0c; 当连接第三方服务超时时&#xff0c;多重试几次&#xff0c;比如3次&a…...

数据库日志解析:深入了解MySQL中的各类日志

**> &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 数据库日志解析&#xff1a;深入了解MySQL中的各类日志 前言第一&#xff1a;错误日志❌1. 错误日志的作用2. 记录内容3. 故障排查的方法 第二&#xff1a;查询日志1.…...

操作系统题目分类总结 | 进程管理 内存管理 文件系统 设备管理

系列文章如下 学习过程中一定要有系统观念&#xff08;知识框架&#xff0c;每一章开头都会有一个思维导图&#xff09;&#xff0c;知道目前自己在学习的是哪一板块的内容&#xff0c;和前面有什么样的联系 操作系统的很多知识点前后都是联系非常紧密的&#xff0c;去一点一…...

数据结构——单链表(Singly Linked List)

1.链表介绍 链表是一种物理储存上非连续、非顺序的存储结构。数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点&#xff08;链表中每一个元素称为结点&#xff09;组成&#xff0c;结点可以在运行时动态生成。 对于上图&#xff0c;每一个结点都是一个结…...

4面试题--数据库(补充)

隔离性问题 若不考虑隔离性则会出现以下问题 1. 脏读&#xff1a;指⼀个事务在处理数据的过程中&#xff0c;读取到另⼀个 未提交 事务的数据 2. 不可重复读&#xff1a;指对于数据库中的某个数据&#xff08;同⼀个数据项&#xff09;&#xff0c;⼀个事务内的多次查询却…...

人力资源管理后台 === 左树右表

1.角色管理-编辑角色-进入行内编辑 获取数据之后针对每个数据定义标识-使用$set-代码位置(src/views/role/index.vue) // 针对每一行数据添加一个编辑标记this.list.forEach(item > {// item.isEdit false // 添加一个属性 初始值为false// 数据响应式的问题 数据变化 视图…...

WordPress无需插件禁用WP生成1536×1536和2048×2048尺寸图片

我们在使用WordPress上传图片媒体文件的时候&#xff0c;是不是看到媒体库中有15361536和20482048的图片文件&#xff0c;当然这么大的文件会占用我们的服务器空间&#xff0c;如何禁止掉呢&#xff1f; function remove_default_image_sizes( $sizes) {unset( $sizes[1536x15…...

Git 与 Maven:企业级版本管理与版本控制规范设计

一、背景 当今&#xff0c;许多开发人员熟悉 GitFlow 工作流程&#xff0c;但往往忽略了 GitFlow 如何与 Maven 版本控制结合&#xff0c;尤其是在管理 snapshot 和 release 版本时的最佳实践。本文旨在整合 GitFlow 工作流程与 Maven 版本管理&#xff0c;提出一个统一的企业…...

Springmvc原理解析

1. DispatcherServlet springmvc的核心控制器&#xff0c;负责截获所有的请求&#xff0c;当截获请求后委托给HandlerMapping进行请求映射的解析工作&#xff0c;目的是找到哪一个Controller的方法可以处理该请求&#xff0c;找到后再交由给HandlerAdaptor去负责调用并返回Mod…...

Retrofit怎么返回一个JSON字符串?

项目用已经使用了 Retrofit&#xff0c;定义了接口方法&#xff0c;返回了 JSON 转换后的实体对象&#xff0c;炒鸡方便。但是总有意料之外的时候&#xff0c;比如我不需要返回实体对象&#xff0c;我要返回纯纯的 JSON 字符串&#xff0c;怎么办呢&#xff1f; 先看源码 通过…...

【GCC】2:chatgpt:SendSideBandwidthEstimation

webrtc中SendSideBandwidthEstimation类的设计 The SendSideBandwidthEstimation class in WebRTC is a critical component in its video engine. It’s responsible for deciding the video traffic rate that can be sent without overloading the network and thus maintai…...

OpenGL 自学总结

前言&#xff1a; 本人是工作后才接触到的OpenGL&#xff0c;大学找工作的时候其实比较着急&#xff0c;就想着尽快有个着落。工作后才发现自己的兴趣点。同时也能感觉到自己当前的工作有一点温水煮青蛙的意思&#xff0c;很担心自己往后能力跟不上年龄的增长。因此想在工作之余…...

java集合,ArrayList、LinkedList和Vector,多线程场景下如何使用 ArrayList

文章目录 Java集合1.2 流程图关系1.3 底层实现1.4 集合与数组的区别1.4.1 元素类型1.4.2 元素个数 1.5 集合的好处1.6 List集合我们以ArrayList集合为例1.7 迭代器的常用方法1.8 ArrayList、LinkedList和Vector的区别1.8.1 说出ArrayList,Vector, LinkedList的存储性能和特性1.…...

5分钟搞定Java语音识别:SmartJavaAI整合Whisper和Vosk的实战教程

Java语音识别极速集成指南&#xff1a;Whisper与Vosk双引擎实战 语音交互正在重塑人机交互的边界。想象一下&#xff0c;你的Java应用能够听懂用户指令、实时转录会议内容&#xff0c;甚至分析语音情感——这一切不再需要复杂的算法团队支持。本文将带你用五分钟突破技术壁垒&a…...

Keil UV4配色进阶:不止替换文件,教你用global.prop打造专属高效编码环境

Keil UV4深度调校指南&#xff1a;从global.prop解析到现代IDE级编码环境定制 当你每天面对Keil UV4那个灰暗的默认界面时&#xff0c;是否想过这个老牌嵌入式开发工具也能拥有VS Code般的优雅体验&#xff1f;不同于简单的主题替换&#xff0c;我们将深入global.prop文件的每一…...

收藏!小白程序员快速入门大模型:什么是AI Agent?

本文用简洁语言定义AI Agent为“有目标、会思考、能自己调用工具干活”的AI&#xff0c;以Deepseek和ChatGPT为例。文章详细介绍了Agent的核心能力&#xff08;记忆、自主规划、行动/工具调用&#xff09;及类型&#xff08;编程、个人助理、内容生成等&#xff09;。重点解析了…...

AI agent 学习笔记

最近在自学AI agent&#xff0c;突然感觉自己像是断网了两年&#xff0c;AI咋发展这么快啊我去&#xff0c;2年前还不兴这个啊&#xff0c;神了&#xff0c;真就两年一个风口啊。 提示工程&#xff08;Prompt Engineering&#xff09; 学习资料&#xff1a;ChatGPT Prompt En…...

Flyback电路关键元件选型与设计实战(1)

1. 反激式电源保护元件的重要性 反激式开关电源&#xff08;Flyback Converter&#xff09;作为最常见的隔离型电源拓扑之一&#xff0c;其可靠性很大程度上取决于保护电路的设计。在实际项目中&#xff0c;我见过太多因为保护元件选型不当导致的炸机事故——从保险丝误熔断到压…...

USB运动控制五轴雕刻机系统完全开源资料:PCB生产支持,多版本C++源码,五轴联动与RTCP...

USB运动控制 (五轴雕刻机系统)全部开源 不保留任何关键技术&#xff0c;PCB可直接生产&#xff0c;C6.0源码&#xff0c;从13.7-18.2所有版本&#xff0c;本产品为可复制资料&#xff0c;支持五轴联动&#xff0c;支持RTCP算法&#xff0c;全部开源。1、为电子资料 2、PCB底板原…...

别再死记公式了!手把手带你用Python脚本搞定二级运放GBW与相位裕度设计

用Python脚本解放模拟IC设计&#xff1a;二级运放GBW与相位裕度的自动化探索 在模拟集成电路设计的浩瀚海洋中&#xff0c;二级运算放大器就像是一艘精巧的帆船——结构看似简单&#xff0c;却需要设计师对每个参数都了如指掌才能驾驭得当。传统设计流程中&#xff0c;工程师们…...

Fast-GitHub:基于智能路由优化的GitHub访问加速架构深度解析

Fast-GitHub&#xff1a;基于智能路由优化的GitHub访问加速架构深度解析 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 面对国内开…...

3步极速下载M3U8视频:N_m3u8DL-CLI-SimpleG终极指南

3步极速下载M3U8视频&#xff1a;N_m3u8DL-CLI-SimpleG终极指南 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为无法保存在线视频而烦恼吗&#xff1f;N_m3u8DL-CLI-Simple…...

制造业设计团队文档管理选型实战

制造业设计团队文档管理选型实战 某中型机械制造企业&#xff0c;研发团队47人&#xff0c;日常需要管理CAD图纸、BOM表、工艺文件、技术规范等超过120万份文件。过去三年&#xff0c;这支团队换了两次文档管理系统&#xff0c;第二套系统上线8个月后被迫重建——原因是设计部门…...