WPF动画

【原地址】http://www.cnblogs.com/pasoraku/archive/2012/10/17/2727600.html

WPF动画

一,使用DoubleAnimation创建动画

复制代码
//1,创建剧本
Storyboard storyboard = new Storyboard();
//2,创建动画
DoubleAnimation doubleAnimation = new DoubleAnimation(
        valueStart,//起始值
        valueEnd,//终点值
        new Duration(TimeSpan.FromMilliseconds(1000s))//动画时间域
       );
//3,Target
Storyboard.SetTarget(doubleAnimation, rect);//Target对象
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(Canvas.Left)"));//Target属性
//4,在剧本中添加动画
storyboard.Children.Add(doubleAnimation);
//5,在资源中添加剧本
if(!Resources.Contains("animation"))
{
  Resources.Add("animation", storyboard);
}
//6,开始
storyboard.Begin();
复制代码

 

二,使用CompositionTarget

CompositionTarget对象可以根据每个帧回调来创建自定义动画。

1,注册事件

CompositionTarget.Rendering += new EventHandler(ReflashView);

2,事件的实现

复制代码
private void ReflashView(object sender, EventArgs e) {
  double rectX = Canvas.GetLeft(rect);
  double rectY = Canvas.GetTop(rect);
  //算法自拟
  Canvas.SetLeft(rect, valueX);
  Canvas.SetTop(rect, valueY);
}
复制代码

三, DispatcherTimer动画

基于界面线程的逐帧动画,与CompositionTarget动画不同,DispatcherTimer动画可以很轻松的通过Interval 来控制刷新一个对象属性的频率了。

1, 创建一个DispatchTimer

DispatcherTimer dispatcherTimer = new DispatcherTimer(DispatcherPriority.Normal);
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = TimeSpan.FromMilliseconds(50);
dispatcherTimer.Start();

2, 实现dispatcherTimer_Tick函数

复制代码
void dispatcherTimer_Tick(object sender, EventArgs e)
{
  double rectX = Canvas.GetLeft(rect);   double rectY = Canvas.GetTop(rect);   //算法自拟   Canvas.SetLeft(rect, valueX);   Canvas.SetTop(rect, valueY);
}
基于C2000 DSP的电力电子、电机驱动和数字滤波器的仿真模型构建及其C代码实现方法。首先,在MATLAB/Simulink环境中创建电力电子系统的仿真模型,如三相逆变器,重点讨论了PWM生成模块中死区时间的设置及其对输出波形的影响。接着,深入探讨了C2000 DSP内部各关键模块(如ADC、DAC、PWM定时器)的具体配置步骤,特别是EPWM模块采用上下计数模式以确保对称波形的生成。此外,还讲解了数字滤波器的设计流程,从MATLAB中的参数设定到最终转换为适用于嵌入式系统的高效C代码。文中强调了硬件在环(HIL)和支持快速原型设计(RCP)的重要性,并分享了一些实际项目中常见的陷阱及解决方案,如PCB布局不当导致的ADC采样异常等问题。最后,针对中断服务程序(ISR)提出了优化建议,避免因ISR执行时间过长而引起的系统不稳定现象。 适合人群:从事电力电子、电机控制系统开发的技术人员,尤其是那些希望深入了解C2000 DSP应用细节的研发工程师。 使用场景及目标:①掌握利用MATLAB/Simulink进行电力电子设备仿真的技巧;②学会正确配置C2000 DSP的各项外设资源;③能够独立完成从理论设计到实际产品落地全过程中的各个环节,包括但不限于数字滤波器设计、PWM信号生成、ADC采样同步等。 其他说明:文中提供了大量实用的代码片段和技术提示,帮助读者更好地理解和实践相关知识点。同时,也提到了一些常见错误案例,有助于开发者规避潜在风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值