WPF太阳、地球、月球运动轨迹模拟
来源:互联网 发布:域名注册通官网 编辑:程序博客网 时间:2024/04/27 16:00
WPF模拟太阳。月球、地球三者运动轨迹的模拟,现在还没有加上太阳自传的动画,有兴趣的可以加上。
主要是利用EllipseGeometry实现路径的绘制
xaml代码如下:
<Window x:Class="MyFirstWpfApplication.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="地球、月球、太阳运动模拟" Height="768" Width="1366" WindowStartupLocation="CenterScreen"> <Grid> <Grid.Background> <ImageBrush ImageSource="earth.jpg"/> </Grid.Background> <Ellipse Height="150" HorizontalAlignment="Left" Margin="619,321,0,0" Name="ellipse3" VerticalAlignment="Top" Width="150" ToolTip="太阳"> <Ellipse.Fill> <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> <GradientStop Color="#FFFFCA00" Offset="0.246" /> <GradientStop Color="#FFFF0034" Offset="0.967" /> </LinearGradientBrush> </Ellipse.Fill> </Ellipse> <!--通过使用EllipseGeometry实现椭圆路径的绘制--> <Path Margin="308,136,120,81" Stroke="#FFFF7900" RenderTransformOrigin="0.415,0.498"> <Path.Data> <EllipseGeometry Center="400 250" RadiusX="400" RadiusY="250" x:Name="e1"/> </Path.Data> </Path> <Grid Height="352" HorizontalAlignment="Left" Margin="30,-12,0,0" Name="grid1" VerticalAlignment="Top" Width="484"> <Grid.RenderTransform> <MatrixTransform x:Name="grid"/> </Grid.RenderTransform> <!--Grid触发器--> <Grid.Triggers> <EventTrigger RoutedEvent="Page.Loaded"> <BeginStoryboard> <Storyboard x:Name="sb1" RepeatBehavior="Forever"> <MatrixAnimationUsingPath x:Name="ma1" Storyboard.TargetName="grid" Storyboard.TargetProperty="Matrix" Duration="0:1:0"/> </Storyboard> </BeginStoryboard> </EventTrigger> </Grid.Triggers> <Ellipse Height="100" HorizontalAlignment="Left" Margin="227,94,0,0" Name="ellipse1" VerticalAlignment="Top" Width="100" ToolTip="地球"> <Ellipse.Fill> <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> <GradientStop Color="#FFE0DFDD" Offset="0" /> <GradientStop Color="#FF0035FF" Offset="0.975" /> </LinearGradientBrush> </Ellipse.Fill> <Ellipse.RenderTransform> <TransformGroup> <MatrixTransform x:Name="earth"/> </TransformGroup> </Ellipse.RenderTransform> <Ellipse.Triggers> <EventTrigger RoutedEvent="Page.Loaded"> </EventTrigger> </Ellipse.Triggers> </Ellipse> <Ellipse Height="50" HorizontalAlignment="Left" Margin="228,40,0,0" Name="ellipse2" VerticalAlignment="Top" Width="50" ToolTip="月球"> <Ellipse.Fill> <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> <GradientStop Color="White" Offset="0" /> <GradientStop Color="#FFDDD2BE" Offset="0.943" /> </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"> <MatrixAnimationUsingPath x:Name="ma2" Storyboard.TargetName="moon" Storyboard.TargetProperty="Matrix" Duration="0:0:30"> </MatrixAnimationUsingPath> </Storyboard> </BeginStoryboard> </EventTrigger> </Ellipse.Triggers> </Ellipse> <Path Margin="262.522,59,0,93" HorizontalAlignment="Left" Width="122" Height="200" Stroke="#FF00FF40"> <Path.Data> <EllipseGeometry x:Name="ellipseGeometry1" Center="50 100" RadiusX="50" RadiusY="100" > <EllipseGeometry.Transform> <SkewTransform AngleY="-20"></SkewTransform> </EllipseGeometry.Transform> </EllipseGeometry> </Path.Data> </Path> </Grid> <TextBox HorizontalAlignment="Left" Height="110" Margin="891,7,0,0" TextWrapping="Wrap" Text="地球饶太阳公转,月球饶地球公转。太阳、地球、月球都在自转太阳是太阳系的主宰,是恒星。地球是太阳系的一颗行星,月球是地球的一颗天然卫星。地球绕着太阳公转,月球绕着地球公转。太阳不可能位于地球和月球之间。" VerticalAlignment="Top" Width="448" Background="{x:Null}" Foreground="#FF009DFF" BorderBrush="#FF0012FF"/> </Grid></Window>最后效果如图:
1 0
- WPF太阳、地球、月球运动轨迹模拟
- Canvas模拟太阳地球月球的运动过程
- OpenGL模拟太阳、地球、月球公转自转
- OpenGL:太阳、地球、月球模型模拟动画
- canvas 模拟地球绕太阳转动 月球绕地球转动
- VS 平台下 OpenGL 实现地球、月球、太阳运动
- 基于C#的2D太阳、地球、月亮运动轨迹模拟实现
- [HTML5-SVG]使用svg、CSS3、raphaeljs:模拟月球绕地球,地球绕太阳旋转
- Canvas模拟地球,月球公转
- 太阳自转 * 地球自转、公转 * 月球自转、公转
- OpenGL 地球,月亮,太阳 相对运动
- FLex中AS实现地球轨迹运动
- 关于OpenGL入门中地球,月亮,太阳运动模拟无法显示的问题(只显示黑框)
- OpenGL模拟太阳地球月亮系统
- SVG 模拟太阳 地球 月亮旋转
- 玩转html5(五)---月球绕着地球转,地球绕着太阳转
- 来自太阳和月球
- canvas简单模拟太阳地球月亮的转动
- PL/SQL中复制中文再粘贴出现乱码问题的解决
- table 大全
- 利用 HTML 5 的多图片上传及预览(不含前端的文件分割)
- #pragma comment(lib, "ws2_32.lib") 意义
- UVA 502 - DEL command(贪心构造)
- WPF太阳、地球、月球运动轨迹模拟
- C++函数对象
- 面试题8:旋转数组的最小数字
- sonar执行慢的问题
- flash开发中的几个安全问题
- 美版nexus 5 和其它kindle设备不能同步卓越电子书的解决
- ios 开发之使用Reachability检测网络状态
- 36 Android Activity跳转动画 获取当前版本
- 2014年最赚钱的云计算技术:备受企业青睐