WPF太阳、地球、月球运动轨迹模拟

原文:WPF太阳、地球、月球运动轨迹模拟

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangyisen0713/article/details/18216803

WPF模拟太阳。月球、地球三者运动轨迹的模拟,现在还没有加上太阳自传的动画,有兴趣的可以加上。

主要是利用EllipseGeometry实现路径的绘制

xaml代码如下:

<Windowx:Class="WpfApp11.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="地球、月球、太阳运动模拟"Width="1366"Height="768"WindowStartupLocation="CenterScreen"> <Grid><Grid.Background><ImageBrush ImageSource="earth.jpg" /></Grid.Background><EllipseName="ellipse3"Width="150"Height="150"Margin="619,321,0,0"HorizontalAlignment="Left"VerticalAlignment="Top"ToolTip="太阳"><Ellipse.Fill><LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"><GradientStop Offset="0.246" Color="#FFFFCA00" /><GradientStop Offset="0.967" Color="#FFFF0034" /></LinearGradientBrush></Ellipse.Fill></Ellipse><!--  通过使用EllipseGeometry实现椭圆路径的绘制  --><PathMargin="308,136,120,81"RenderTransformOrigin="0.415,0.498"Stroke="#FFFF7900"StrokeThickness="5"><Path.Data><EllipseGeometryx:Name="e1"Center="400 250"RadiusX="400"RadiusY="250" /></Path.Data></Path><GridName="grid1"Width="484"Height="352"Margin="30,-12,0,0"HorizontalAlignment="Left"VerticalAlignment="Top"><Grid.RenderTransform><MatrixTransform x:Name="grid" /></Grid.RenderTransform><!--  Grid触发器  --><Grid.Triggers><EventTrigger RoutedEvent="Page.Loaded"><BeginStoryboard><Storyboard x:Name="sb1" RepeatBehavior="Forever"><MatrixAnimationUsingPathx:Name="ma1"Storyboard.TargetName="grid"Storyboard.TargetProperty="Matrix"Duration="0:1:0" /></Storyboard></BeginStoryboard></EventTrigger></Grid.Triggers><EllipseName="ellipse1"Width="100"Height="100"Margin="227,94,0,0"HorizontalAlignment="Left"VerticalAlignment="Top"ToolTip="地球"><Ellipse.Fill><LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"><GradientStop Offset="0" Color="#FFE0DFDD" /><GradientStop Offset="0.975" Color="#FF0035FF" /></LinearGradientBrush></Ellipse.Fill><Ellipse.RenderTransform><TransformGroup><MatrixTransform x:Name="earth" /></TransformGroup></Ellipse.RenderTransform><Ellipse.Triggers><EventTrigger RoutedEvent="Page.Loaded" /></Ellipse.Triggers></Ellipse><EllipseName="ellipse2"Width="50"Height="50"Margin="228,40,0,0"HorizontalAlignment="Left"VerticalAlignment="Top"ToolTip="月球"><Ellipse.Fill><LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"><GradientStop Offset="0" Color="White" /><GradientStop Offset="0.943" Color="#FFDDD2BE" /></LinearGradientBrush></Ellipse.Fill><Ellipse.RenderTransform><TransformGroup><MatrixTransform x:Name="moon" /></TransformGroup></Ellipse.RenderTransform><Ellipse.Triggers><EventTrigger RoutedEvent="Page.Loaded"><BeginStoryboard><Storyboard x:Name="sb2" RepeatBehavior="Forever"><MatrixAnimationUsingPathx:Name="ma2"Storyboard.TargetName="moon"Storyboard.TargetProperty="Matrix"Duration="0:0:30" /></Storyboard></BeginStoryboard></EventTrigger></Ellipse.Triggers></Ellipse><PathWidth="122"Height="200"Margin="262.522,59,0,93"HorizontalAlignment="Left"Stroke="#FF00FF40"StrokeThickness="5"><Path.Data><EllipseGeometryx:Name="ellipseGeometry1"Center="50 100"RadiusX="50"RadiusY="100"><EllipseGeometry.Transform><SkewTransform AngleY="-20" /></EllipseGeometry.Transform></EllipseGeometry></Path.Data></Path></Grid><TextBoxWidth="448"Height="110"Margin="891,7,0,0"HorizontalAlignment="Left"VerticalAlignment="Top"Background="{x:Null}"BorderBrush="#FF0012FF"BorderThickness="0"Foreground="White"Text="地球饶太阳公转,月球饶地球公转。太阳、地球、月球都在自转太阳是太阳系的主宰,是恒星。地球是太阳系的一颗行星,月球是地球的一颗天然卫星。地球绕着太阳公转,月球绕着地球公转。太阳不可能位于地球和月球之间。"TextWrapping="Wrap" /></Grid>
</Window> 

最后效果如图:

    public MainWindow(){InitializeComponent();ma2.PathGeometry = ellipseGeometry1.GetFlattenedPathGeometry(); ma1.PathGeometry = e1.GetFlattenedPathGeometry(); }

posted on 2018-09-22 01:11 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/9689214.html

WPF太阳、地球、月球运动轨迹模拟相关推荐

  1. opengl的配置和太阳-地球-月球演示

    详细配置过程请点击链接 https://www.cnblogs.com/flylinmu/p/7823019.html 下面介绍opengl实例,太阳-地球-月球演示 建立一个控制台程序 sun.cp ...

  2. html5之太阳地球月球,使用html5画出地球月球和太阳之间的环绕关系

    本文主要是描述了使用html5画出地球月球和太阳之间的环绕关系,其实他们比较简单,主要是通过旋转来控制各个之间的环绕关系!~ 输入代码,里面有注释: ------------------------- ...

  3. Canvas模拟太阳地球月球的运动过程

    先看效果图 代码 package com.test.paintdemo.pathrelate;import android.content.Context; import android.graphi ...

  4. matlab地球公转,Unity模拟太阳地球月球公转自转

    1. 打开Unity编辑器,创建三个sphere,依次重命名为Sun,Earth,Moon.将三个球体大小比例控制在5:3:1,并适当调整位置. 2. 分别为三个小球附上材质 3. 新建脚本文件,重命 ...

  5. 基于C#的2D太阳、地球、月亮运动轨迹模拟实现

    1.题目要求:    如题所示----基于C#的2D太阳.地球.月亮运动轨迹模拟实现. 2.研究思路:      此题目属于图形学中比较典型的有关运动轨迹实现的问题.      首先二话不说,站在面向 ...

  6. Python模拟太阳-地球-月亮运动模型

    作者 | Charles,cv方向在读研究生.[Charles 的皮卡丘]专注于分享有趣好玩的Python小项目(AI.爬虫等等). 来源 | Charles 的皮卡丘 编辑 | Jane [导语]春 ...

  7. Python模拟登录,matplotlib模块,Python模拟太阳-地球-月亮运动模型

    前言 利用python模拟太阳-地球-月亮运动模型. 让我们愉快地开始吧~ 开发工具 **Python版本:**3.6.4 相关模块: pygame模块: matplotlib模块: numpy模块: ...

  8. javascript-动画animation自己学习做太阳地球和月球运转动画;

    首先声明一点:自己学习的程序来源于: https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Basic_animat ...

  9. WPF DataGrid 通过自定义表头模拟首行固定

    WPF DataGrid 通过自定义表头模拟首行固定 独立观察员 2021 年 9 月 25 日 最近工作中要在 WPF 中做个表格,自然首选就是 DataGrid 控件了.问题是,UI 设计的表格是 ...

  10. openGl编程实现一个太阳地球月亮的一个简单运动系统

    一. 项目目的 使用openGl编程实现一个太阳地球月亮的一个简单运动系统,要求实现三维转动.点光源变化.纹理映射及阴影等效果 二. 任务实现 \1. 满足三者实际大小/距离的比例关系: \2. 满足 ...

最新文章

  1. Swift3.0语言教程字符串与文件的数据转换
  2. linux user 用户管理
  3. Visual Studio 正则表达式替换
  4. 图像马赛克原理及实现
  5. 数据结构(六)查找---多路查找树(2-3-4树)
  6. android标题栏上增加按钮,Android:向自定义标题栏添加按钮
  7. 可以在一个函数中定义另一个函数_第5周 定义一个函数
  8. android 引入 .so,android studio导入so文件,并调用其中的方法
  9. elasticsearch集群搭建实例
  10. 爬虫千万条,守法第一条,爬虫不规范,亲人两行泪
  11. 电压模块THM30-2421WI
  12. 《蜗居》经典台词100句
  13. 软件测试每日一题—分享功能测试
  14. 现在流行的网络直播都需要什么设备?
  15. jQuery新手入门
  16. python可视化窗口库_Python可视化工具介绍——找到合适的库
  17. 华清远见嵌入式学习总结
  18. I.MX6ULL ARM驱动开发---设备树下的platfrom设备驱动
  19. MySQL8数据库原理与应用(微课版)课后笔记-实训7
  20. 自己做量化交易软件(4)通通量化分析框架构成2

热门文章

  1. https验证失败+Android,okhttpSSL证书验证失败有关问题
  2. 2021-06-04计算器简易代码
  3. return 0在c语言中是什么意思_单次T+0与蓝筹股试点T+0制度是什么意思,两者有何区别?...
  4. 双一流2020年调整时间_“双一流”调整名单预测,985大学两升一降,两校退出名校阵营...
  5. static RMQ
  6. Java TCP案例网络聊天室
  7. swagger的使用
  8. 版本控制工具(GIT)
  9. Spring boot 2.x + Thymeleaf 公共部分抽取
  10. Spring Boot @ConfigurationProperties 、@EnableConfigurationProperties、@Value 注值、 ${xxx} 占位符、Environme