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

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
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
利用GMap实现运动轨迹,可以通过在地图上添加Marker,并设置Marker的位置来实现。具体步骤如下: 1. 在XAML文件中,定义一个GMapControl控件,并设置属性,比如地图类型、中心点坐标、缩放级别等。 ``` <local:GMapControl x:Name="gMapControl" MapType="GoogleMap" Center="39.9087, 116.3975" Zoom="12"/> ``` 2. 在代码中,定义一个List<Marker>类型的变量,用于存储所有的Marker,以便于后续操作。 ``` List<Marker> markers = new List<Marker>(); ``` 3. 在代码中,定义一个定时器,用于更新Marker的位置。在定时器的Tick事件中,更新Marker的位置,并重新设置Marker的位置。 ``` private void timer_Tick(object sender, EventArgs e) { // 更新Marker的位置 double lat = ...; // 获取当前的纬度 double lng = ...; // 获取当前的经度 // 设置Marker的位置 markers[0].Position = new PointLatLng(lat, lng); // 刷新地图 gMapControl.Refresh(); } ``` 4. 在代码中,添加Marker,并将Marker添加到List<Marker>变量中。 ``` // 添加Marker GMapMarker marker = new GMapMarker(new PointLatLng(lat, lng)); marker.Shape = new Ellipse { Width = 10, Height = 10, Fill = Brushes.Red }; // 将Marker添加到List<Marker>变量中 markers.Add(marker); // 在地图上添加Marker gMapControl.Markers.Add(marker); ``` 5. 启动定时器,即可在地图上看到运动轨迹。 ``` // 启动定时器 timer.Start(); ``` 通过以上步骤,即可利用GMap实现运动轨迹的效果。需要注意的是,定时器的间隔时间要根据实际情况进行调整,以达到更好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值