本文主要是介绍基于C#的2D太阳、地球、月亮运动轨迹模拟实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.题目要求:
如题所示----基于C#的2D太阳、地球、月亮运动轨迹模拟实现。
2.研究思路:
此题目属于图形学中比较典型的有关运动轨迹实现的问题。
首先二话不说,站在面向对象的角度考虑至少包含太阳、地球、月亮三个类。由于是模拟实现,故有些相关数据并非的绝对正确。在此我们假设太阳位于屏幕的画布的中心,且静止不动(虽然有自转,但是由于是2D不好显示,并且如此假设也不影响最终整体效果,故假设之);地球围绕太阳公转(假设运行轨迹为圆);月亮围绕地球公转。
问题难点:地球在围绕太阳转动的同时,月亮也在围绕地球公转,并且地球公转的角速度是月亮角速度的1/12.
3.程序说明:
运行平台:windows 7
开发工具:Microsoft Visual Studio 2010
开发语言:C# 、GDI+
程序类型:Windows窗体应用程序
4.具体实现:
1)兴建工程(在此我们将此工程命名为SunEarthMoon)
打开Visual Studio 2010 -->文件-->兴建-->项目;选择Windows窗体应用程序,在"名称"后面上SunEarthMoon, 然后选择程序保存的路径,单击确定即可。
如果你在你的“解决方案资源管理器”中看到有如下图示文件目录结构, 那么说明你的
SunEarthMoon工程已经成功创建可以成功跳至2)了;否之 ,你还需要返回1),直到成功为止。
2)业务逻辑类实现
(1)在模拟的时候,由于太阳,地球,月亮他们有很多相似的地方,故在此抽象出了一个
Start的父类,里面主要包含一些公共的属性并提供一个待子类重写的draw()虚函数。
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;namespace SunEarthMoon
{class Start{public Point center; // 星球的球星public Point movingCenter; //星球公转轨迹的中心public int radius; //星球的半径publi
这篇关于基于C#的2D太阳、地球、月亮运动轨迹模拟实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!