【小沐学GIS】基于C#绘制三维数字地球Earth(OpenGL)

🍺三维数字地球系列相关文章如下🍺:
1【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第一期
2【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第二期
3【小沐学GIS】基于OpenSceneGraph(OSG)绘制三维数字地球Earth
4【小沐学GIS】基于C++绘制太阳系SolarSystem(OpenGL、glfw、glut)
5【小沐学GIS】基于C#绘制三维数字地球Earth(OpenGL)

文章目录

  • 1、简介
    • 1.1 OpenGL简介
    • 1.2 相关C#的OpenGL库
      • 1.2.1 OpenTK
      • 1.2.2 SharpGL
      • 1.2.3 tao.Opengl
  • 10、代码测试
    • 10.1 opengl / wpf / c#(2d)
    • 10.2 opengl / OpenTK / c#(3d)
    • 10.3 opengl / glut / Tao.OpenGL / c#(3d,太阳系)
  • 结语

1、简介

1.1 OpenGL简介

OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形到比较复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。

1.2 相关C#的OpenGL库

在C#中直接调用OpenGL函数比较繁琐,一般不直接使用。我们可以借助第三方开源库,比如SharpGL、CsGL、OpenTK、Tao框架等。下面对这些框架逐一介绍,其中Tao已经停止维护和更新了,可以被OpenTK替代。

1.2.1 OpenTK

https://github.com/opentk/opentk

The Open Took Kit (OpenTK), 是对 OpenGL、OpanAL、OpenCL 的跨平台的封装,使用 C# 编写,可以运行在 Windows、 Linux 以及 MacOSX 平台上, 任何 .Net 语言都可以使用它做开发。

1.2.2 SharpGL

https://github.com/dwmkerr/sharpgl
在 .NET 应用程序中使用 OpenGL。SharpGL 封装了所有现代 OpenGL 功能,并提供了强大的场景图来帮助开发。

1.2.3 tao.Opengl

https://github.com/mono/tao

Tao框架是C#使用Opengl的一种图形库,其他可供C#使用的图形库有诸如Sharpgl等。Tao框架包含了许多C库。Tao库结合了C#语言的特点,使得在使用Tao库时更加方便。
在动态链接库Tao.Platform.Windows中定义的SimpleOpenglControl类,其定义了几乎所有的Opengl主要绘图函数,包括场景初始化函数、场景绘制渲染函数、双缓存交换函数、重绘函数、窗口大小改变等等。在Form的派生类中添加一个内部的simpleOpenglControl类,就能使用它的所有属性和方法。

10、代码测试

10.1 opengl / wpf / c#(2d)

在这里插入图片描述
在这里插入图片描述

10.2 opengl / OpenTK / c#(3d)

在这里插入图片描述
在这里插入图片描述

10.3 opengl / glut / Tao.OpenGL / c#(3d,太阳系)

在这里插入图片描述
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/340280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TSKE 系列液氮低温恒温器

锦正茂科技有限公司研发的液氮型低温恒温器,利用液氮作为降温媒介,标准恒温器可实现快速降温至液氮温度(约20min),其工作原理是在恒温器内部液氮腔内装入液氮,通过调整控温塞与冷指的间隙来保持冷指的漏热稳…

使用docker安装使用AWVS渗透常用工具

AWVS安装 AWVS我是装在Docker上的,在VPS中部署好Docker后,敲入以下命令 docker pull secfa/docker-awvs #拉取镜像 docker run -it -d -p 8443:3443 secfa/docker-awvs #将Docker的3443端口映射到VPS的8443端口访问https://VPS的IP:8443 默认账号密码&…

如何查看苹果手机的CPU型号?

摘要 本文将介绍如何在苹果手机上查看CPU型号。通过简单的设置操作,您可以轻松地获取您的iPhone的CPU型号信息。此外,我们还将介绍一些克魔助手可以提供的其他功能,如内存监控、GPU性能监控和网络抓包等,以帮助您优化和提升iOS应…

AI相关资料

文心一格收费,有免费额度 通义万相_AI创意作画_AI绘画_人工智能-阿里云 AI AIchatOS 即时 AI - 生成式图像创作及 UI 设计工具 Framer — The internet is your canvas

【pytorch框架】使用 PyTorch 进行深度学习

1.Pytorch介绍 PyTorch 是由 Facebook 创建和发布的用于深度学习计算的 Python 库。它起源于早期的库 Torch 7,但完全重写。 它是两个最受欢迎的深度学习库之一。PyTorch 是一个完整的库,能够训练深度学习模型以及在推理模式下运行模型,并支…

stm32内存分配博客笔记

原文: stm32内存分配 笔记: 1、向量表与代码段;根据Cortex-M3权威指南描述,系统复位后,在向量表异常0处保存的是堆栈起始地址,而后紧跟中断向量表 2、可以从链接脚本.ld文件中看到终端向量表第一个被链接…

一篇文章带你了解 什么是u(ustd)带你了解他的前世今生

在数字货币的繁荣世界中,USDT无疑是其中一位重要的角色。它的前世今生,是一个从无到有,从小到大,经历了种种波折和争议的故事。 2014年11月下旬,一个名为Realcoin的注册地为马恩岛和香港的公司决定改变自己的名字&…

如何创建vite项目!

vite 官网:vite是一种新型前端构建工具,能够显著提升前端开发体验 网络:vite是一个静态服务器,也可以说是一个开发的构建工具 它的目标就是提供快速的开发体验和性能优化 vite优点与缺点 Vite 优点Vite 缺点开发服务器比 Webp…

flink部署模式介绍

在一些应用场景中,对于集群资源分配和占用的方式,可能会有特定的需求。Flink 为各种场景提供了不同的部署模式,主要有以下三种,它们的区别主要在于: 集群的生命周期以及资源的分配方式;应用的 main 方法到…

宠物空气净化器推荐哪个好?实惠的猫用猫用净化器牌子测评

作为宠物主人,我们深知养宠物的乐趣和责任,但同时也面临着一些挑战,比如宠物掉毛、异味和空气质量等问题。这就是为什么越来越多的家庭选择宠物空气净化器,为我们创造一个清新、健康的室内环境。 无论我们多么爱我们的毛茸茸伙伴…

[RK-Linux] 移植Linux-5.10到RK3399(九)| 配置USB-A支持HOST功能

文章目录 一、原理图二、设备树三、功能验证一、原理图 RK3399 的 USB 控制器接口如图: 其中 USB PHY0 的 HOST0_DP、HOST0_DM 网络没有使用。 USB PHY0 的 TYPEC0_DP、TYPEC0_DM、TYPEC0_U2VBUSDET 网络用作 type-c 接口。 USB PHY1 的 HOST1_DP、HOST1_DM 网络用作 USB2.…

仰暮计划|“日子过得苦为什么还要生三个小孩呢”

故事的主角是我的奶奶,今年74岁。她的个子不高,但她的脊背笔挺,透露着难掩的坚毅,从她的独家记忆中,更证实了这一点。 少年担责 “奶奶,给我讲讲你小时候吧。” 还没开口,奶奶的眼中泛起了点点…

C# wpf利用Clip属性实现截屏框

wpf截屏系列 第一章 使用GDI实现截屏 第二章 制作截屏框(本章) ______第一节 使用DockPanel制作截屏框 ______第二节 利用Clip属性实现截屏框(本节) 第三章 实现截屏框热键截屏 第四章 实现截屏框实时截屏 第五章 使用ffmpeg命令行实现录屏 文章目录 wp…

pnpm使用

文章目录 前言一、安装二、设置镜像三、使用总结如有启发,可点赞收藏哟~ 前言 pnpm 全称 performant npm,意思为 高性能的 npm 速度快、节约磁盘空间、支持 monorepo、安全性高。 一、安装 npm install -g pnpm or brew install pnpm二、设置镜像 #…

每日一题 670. 最大交换(中等,后缀)

先考虑最简单的情况,如果在首位之后有比它大的数字,那么显然交换这两个数字是最优解其次如果比它大的数字在后面不止出现了一次,那面显然是用最后一次出现的那个位置进行交换(要使值最大,低位要小,高位要大…

MAXWELL

MAXWELL 一、maxwell是什么 maxwell 官网地址:http://maxwells-daemon.io/ 因为官网是纯英文的,倒是不难懂,但总觉得写的略粗糙(也可能笔者英文水平确实拉胯,有待提高)。所以还是自己百度了一下。 当my…

WhatsApp会话信息该如何备份以及还原

对于出海企业来说,WhatsApp是和客户沟通的必备软件之一。无论是聊单还是询盘都可以在WhatsApp上进行,所以WhatsApp上通常存储了很多交易信息。但是WhatsApp软件本身是端对端加密,所以它不会像其他社交软件一样帮你自动在后台备份,…

制造业管理软件:为何ERP替代不了MES?

一、ERP和MES的功能区别 ERP是一种综合性的企业管理软件,它涵盖了企业的各个方面,包括财务、采购、库存、销售、人力资源等。它的主要功能是将企业内部的各项业务整合为一个整体进行管理,实现信息共享和协同工作。ERP的主要特点是可以对企业…

HackTheBox - Medium - Linux - Noter

Noter Noter 是一种中型 Linux 机器,其特点是利用了 Python Flask 应用程序,该应用程序使用易受远程代码执行影响的“节点”模块。由于“MySQL”守护进程以用户“root”身份运行,因此可以通过利用“MySQL”的用户定义函数来利用它来获得RCE并…