首页 > 其他分享 >WPF动画-物体跟随轨迹进行运动

WPF动画-物体跟随轨迹进行运动

时间:2025-01-17 19:33:26浏览次数:1  
标签:动画 轨迹 物体 DoesRotateWithTangent 跟随 WPF

 主要用到:RenderTransformOrigin  MatrixTransform   MatrixAnimationUsingPath  DoesRotateWithTangent

直接上代码

<Grid.Resources>
    <PathGeometry x:Key="PATH" Figures="M0,0 C9.3627259,14.084199 11.524114,20.690514 35.333333,23.666667 45.37791,24.922239 52.798515,21.97157 63,21 77.637055,19.605995 85.241514,18.171211 99.333333,26 108.91683,31.324163 110.48013,35.960258 115.33333,45.666667 119.0979,53.195802 119.89664,55.842377 130.33333,57.333333 139.87989,58.697126 150.54551,61.227243 160.33333,56.333333 180.98628,46.006858 175.62977,25.876591 204,35.333333 225.33093,42.443644 220.82385,51.414336 234.66667,68.333333 240.02228,74.87908 248.22642,70.218666 258.33333,61.666667 264.0656,56.816291 265.78799,48.584215 269.33333,42"/>
</Grid.Resources>
<Grid Grid.Column="1">
    
    <Canvas>
        <Path Panel.ZIndex="2" Canvas.Left="10" Canvas.Top="10" Stroke="Yellow" Data="{StaticResource PATH}"/>
        <!--定义贝塞尔曲线路径--> 
        <Path x:Name="path" Stroke="Black" StrokeThickness="2" Data="M 10,100 C 100,10 200,200 300,100" />

         <!--定义表示灯光的小圆--> 
        <Path Fill="Brown" Opacity="0.3">
            <Path.Data>
                <GeometryGroup FillRule="EvenOdd">
                    <EllipseGeometry Center="0,0" x:Name="ellipse" RadiusX="30" RadiusY="30"/>
                </GeometryGroup>
            </Path.Data>
        </Path>
        <Button x:Name="light" Width="20" Height="20"  RenderTransformOrigin="0.5,0.5">
            <Button.RenderTransform>
                <MatrixTransform />
            </Button.RenderTransform>
            <!--定义动画-->
            <Button.Triggers>

                <EventTrigger RoutedEvent="Window.Loaded">
                    <BeginStoryboard>
                        <Storyboard>
                            <!--沿路径移动动画-->
                            <MatrixAnimationUsingPath
                                Storyboard.TargetProperty="RenderTransform.Matrix"
                                Duration="0:0:5"
                                RepeatBehavior="Forever"
                                AutoReverse="False"
                                 DoesRotateWithTangent="True"
                                PathGeometry="{StaticResource PATH}">

                            </MatrixAnimationUsingPath>
                            <PointAnimationUsingPath
                                 Storyboard.TargetName="ellipse"
                                 Storyboard.TargetProperty="Center"
                                 Duration="0:0:5"
                                 RepeatBehavior="Forever"
                                 AutoReverse="True">
                                <PointAnimationUsingPath.PathGeometry>
                                    <PathGeometry Figures="M 10,100 C 100,10 200,200 300,100"/>
                                </PointAnimationUsingPath.PathGeometry>
                            </PointAnimationUsingPath>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
        </Button>

   

     

    </Canvas>

</Grid>

 

标签:动画,轨迹,物体,DoesRotateWithTangent,跟随,WPF
From: https://www.cnblogs.com/follow-discoverer/p/18677561

相关文章

  • 鸿蒙开发教程实战案例源码分享-tab切换动画
    鸿蒙开发教程实战案例源码分享-tab切换动画往往会看到tab切换时有个显示变大的动画,不会那么突兀。关键是用到animation动画一、思路:用animation二、效果图:看视频更直观点:【2025最新】鸿蒙开发教程实战案例源码分享-推荐和最新tab切换动画三、关键代码:@Compon......
  • 动画+使用动画实现呼吸效果
    <动画>---->使用@keyframes+动画名字,动画的改变可以从from到to,或者是从0%到100%变化,变化不知可以变化背景颜色,还可以变化包括      长高之类的CSS属性      在对应的盒子中添加animation属性,animation:name(设置动画的名称)duration(设置动画的持......
  • WPF冷却塔组件
    1.封装基类ComponentBase.cs继承自UserControl,定义组件中使用的属性和命令publicclassComponentBase:UserControl{privatebool_isSelected;publicboolIsSelected{get{return_isSelected;}set{_isSelecte......
  • WPF 使用GalaSoft.MvvmLight实现MVVM
    MVVM(Model-View-ViewModel)是一种设计模式,用于分离用户界面(View)与业务逻辑(ViewModel)和数据模型(Model)。这种模式特别适用于WPF(WindowsPresentationFoundation)应用程序,因为它可以充分利用WPF的数据绑定、命令和依赖属性等特性,提高应用程序的可维护性和可测试性。MVVM的三个......
  • 【WPF】使用RenderTargetBitmap截图的时候位置出现偏移的一些解决办法
    简介在WPF中,如果你需要把控件的渲染画面保存到图片,那么唯一的选择就是RenderTargetBitmap。不过,RenderTargetBitmap是个比较难伺候的主,有时候你以为能工作,但实际上不能;你以为能够正常截图,但实际上截出来的图片是歪的。所以,我总结一下自己项目中遇到的坑和解决办法吧!保存的图片......
  • Tauri教程-进阶篇-第一节 自定义启动画面
    “如果结果不如你所愿,就在尘埃落定前奋力一搏。”——《夏目友人帐》“有些事不是看到了希望才去坚持,而是因为坚持才会看到希望。”——《十宗罪》“维持现状意味着空耗你的努力和生命。”——纪伯伦Tauri技术教程*第五章Tauri的进阶教程第一节自定义启动画面......
  • DevExpress WPF 中文教程:Grid - 如何创建列并将其绑定到数据属性?
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • Vue.js组件开发-使用地图绘制轨迹
    在Vue.js中开发一个组件来展示地图并绘制轨迹,可以使用诸如Leaflet.js、MapboxGLJS或百度地图等地图库。这些库提供了丰富的API来创建和定制地图,以及绘制路径、标记和其他地图元素。示例:1.安装Leaflet.js首先,需要安装Leaflet.js库。可以通过npm或yarn来安装:npminstalll......
  • 中科大提出新视频流制作动画解决方案RAIN,可实现真人表情移植和动漫实时动画。
    中科大提出了一种新的视频流制作动画解决方案RAIN,能够使用单个RTX4090GPU实时低延迟地为无限视频流制作动画。RAIN的核心思想是有效地计算不同噪声水平和长时间间隔的帧标记注意力,同时对比以前基于流的方法多得多的帧标记进行去噪。这种设计允许RAIN生成具有更短延迟和更......
  • 【亲测能用】二维卡通动画制作软件:Smith Micro Moho Pro v14.3 专业版
    SmithMicroMohov14.3是一款专为动画师、设计师和数字艺术家设计的强大而易用的2D动画软件。它在人物绘制、动画制作和特效处理方面提供了全面的支持,是动画创作的理想选择。Mohov14.3引入了先进的智能骨骼系统,让动画师能够轻松控制角色的关节弯曲和变形,实现复杂而自然的运动和......