iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么利用C#实现绘制出地球旋转效果
  • 369
分享到

怎么利用C#实现绘制出地球旋转效果

2023-07-05 07:07:21 369人浏览 安东尼
摘要

这篇文章主要介绍“怎么利用C#实现绘制出地球旋转效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么利用C#实现绘制出地球旋转效果”文章能帮助大家解决问题。将方形的图像映射到正方形上似乎并没有什么

这篇文章主要介绍“怎么利用C#实现绘制出地球旋转效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么利用C#实现绘制出地球旋转效果”文章能帮助大家解决问题。

将方形的图像映射到正方形上似乎并没有什么难度,所以接下来要做的是把图像映射到球面上。

而球的参数方程为

x=rcosϕcosθ

y=rcosϕsinθ

z=rsinϕ

由于r的值是恒定的,所以生成球的关键参数就是θ, φ而把地图贴在球上就相当于把图像坐标(x,y)映射到坐标θ,φ上。

其中地图为

怎么利用C#实现绘制出地球旋转效果

private MeshGeometry3D SetEarth(int numx, int numz, double r=3){    MeshGeometry3D mesh = new MeshGeometry3D();    double dTh = 2 * Math.PI / numx;    double dPhi = Math.PI / numz;    double X(double th, double phi) => r * Math.Sin(phi) * Math.Cos(th);    double Y(double th, double phi) => r * Math.Sin(phi) * Math.Sin(th);    double Z(double phi) => r * Math.Cos(phi);    // Make the points.    for (int i = 0; i <= numx; i++)        for (int j = 0; j <= numz; j++)        {            var th = i * dTh;            var phi = j * dPhi;            mesh.Positions.Add(new Point3D(X(th, phi), Y(th, phi), Z(phi)));            mesh.TextureCoordinates.Add(new Point(th, phi));        }    // 生成三角形    for (int i = 0; i < numx; i++)        for (int j = 0; j < numz; j++)        {            int i1 = i * (numz + 1) + j;            int i2 = i1 + 1;            int i3 = i2 + (numz + 1);            int i4 = i3 - 1;            mesh.TriangleIndices.Add(i1);            mesh.TriangleIndices.Add(i2);            mesh.TriangleIndices.Add(i3);            mesh.TriangleIndices.Add(i1);            mesh.TriangleIndices.Add(i3);            mesh.TriangleIndices.Add(i4);        }    return mesh;}

生成的地球为

怎么利用C#实现绘制出地球旋转效果

如果生成之后地球躺平了,可以调整一下LookDirection。

如果仅仅是这样,那显然是不行的,因为只看到一个二维的圆形,无法让人觉得这是个地球,接下来就要让这个球转起来。

方法是新建一个Timer,

public MainWindow(){    InitializeComponent();    initialize3D();    timer.Interval = TimeSpan.FromMilliseconds(5);    timer.Tick += Timer_Tick;    timer.Start();}

然后随着时间而旋转

double thAngle = 0;private void Timer_Tick(object? sender, EventArgs e){    thAngle = thAngle > Math.PI ? 0 : thAngle + 0.1;    Rotation3D rotation = new AxisAngleRotation3D(new Vector3D(0,0,1), thAngle);    var rot = new RotateTransfORM3D(rotation, new Point3D(0,0,0));    Point3D[] pts = mesh.Positions.ToArray();    rot.Transform(pts);    mesh.Positions = new Point3DCollection(pts);}

结果为

怎么利用C#实现绘制出地球旋转效果

关于“怎么利用C#实现绘制出地球旋转效果”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 怎么利用C#实现绘制出地球旋转效果

本文链接: https://www.lsjlt.com/news/350326.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用C#实现绘制出地球旋转效果
    将方形的图像映射到正方形上似乎并没有什么难度,所以接下来要做的是把图像映射到球面上。 而球的参数方程为 x​=rcosϕcosθ y=rcosϕsinθ z=...
    99+
    2023-02-28
    C#实现地球旋转效果 C#地球旋转 C#地球
  • 怎么利用C#实现绘制出地球旋转效果
    这篇文章主要介绍“怎么利用C#实现绘制出地球旋转效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么利用C#实现绘制出地球旋转效果”文章能帮助大家解决问题。将方形的图像映射到正方形上似乎并没有什么...
    99+
    2023-07-05
  • Python实现绘制3D地球旋转效果
    目录画一个地球让地球转起来画一个地球 想画一个转动的地球,那么首先要有一个球,或者说要有一个球面,用参数方程可以表示为 x​=rcosϕcosθ y=rcosϕsin&t...
    99+
    2023-02-28
    Python实现3D地球旋转效果 Python 地球旋转 Python 地球
  • Python如何实现绘制3D地球旋转效果
    这篇“Python如何实现绘制3D地球旋转效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现绘制3D地球...
    99+
    2023-07-05
  • 怎么利用纯CSS实现头像旋转和发光的效果
    小编给大家分享一下怎么利用纯CSS实现头像旋转和发光的效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:<!DOCTYPE html&g...
    99+
    2023-06-08
  • 怎么利用Jetpack Compose实现绘制五角星效果
    本文小编为大家详细介绍“怎么利用Jetpack Compose实现绘制五角星效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么利用Jetpack Compose实现绘制五角星效果”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-06-30
  • 怎么使用CSS3实现旋转光环效果
    这篇文章主要介绍了怎么使用CSS3实现旋转光环效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.html框架<div class=...
    99+
    2022-10-19
  • 怎么在Android应用中利用Bitmap实现一个位图旋转效果
    怎么在Android应用中利用Bitmap实现一个位图旋转效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。位图的旋转也可以借助Matrix或者Canvas来实现。通过po...
    99+
    2023-05-31
    android bitmap roi
  • 怎么用CSS3实现登陆面板3D旋转效果
    这篇文章主要讲解了“怎么用CSS3实现登陆面板3D旋转效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用CSS3实现登陆面板3D旋转效果”吧!本文实例...
    99+
    2022-10-19
  • 怎么用巧用CSS实现鼠标跟随3D旋转效果
    这篇文章主要讲解了“怎么用巧用CSS实现鼠标跟随3D旋转效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用巧用CSS实现鼠标跟随3D旋转效果”吧!纯 ...
    99+
    2022-10-19
  • 怎么利用HTML5+CSS3实现3D转换效果
    这篇文章主要为大家展示了“怎么利用HTML5+CSS3实现3D转换效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么利用HTML5+CSS3实现3D转换效果...
    99+
    2022-10-19
  • 怎么用HTML5 transform三维立方体实现三维旋转效果
    本篇内容主要讲解“怎么用HTML5 transform三维立方体实现三维旋转效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用HTML5 transfor...
    99+
    2022-10-19
  • 怎么使用jQuery实现一个图片不停旋转动画效果
    这篇文章主要介绍“怎么使用jQuery实现一个图片不停旋转动画效果”,在日常操作中,相信很多人在怎么使用jQuery实现一个图片不停旋转动画效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用jQuer...
    99+
    2023-07-05
  • 怎么用纯CSS实现一个圆环旋转错觉的动画效果
    本文小编为大家详细介绍“怎么用纯CSS实现一个圆环旋转错觉的动画效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用纯CSS实现一个圆环旋转错觉的动画效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢...
    99+
    2022-10-19
  • C#中怎么利用 WinForm实现一个进度条效果
    C#中怎么利用 WinForm实现一个进度条效果,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先是进度条窗体,需要在上面添加进度条,然后去掉ControlBox。除此外,还要...
    99+
    2023-06-17
  • C#中怎么利用异步实现一个进度条效果
    本篇文章给大家分享的是有关C#中怎么利用异步实现一个进度条效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#进度条实现之异步实例进度条页面://==============...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作