WPF 旋转动画

Dear200892 Dear200892 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

蹭着空闲期,自己编写了一个垃圾飞行棋
现在蓝色棋子停在坐标点(4,12)
下一格方格坐标为(6,11)

通过Math.Atan2函数求得两点之间的角度(map为下格方格坐标,postion为当前停落的坐标)
double angle = Math.Atan2((map.PointY - postion.Y), (map.PointX - postion.X)) * 180 / Math.PI;

现在旋转的角度错误,朝向应该是橙色箭头。
旋转动画代码如下:

//设置旋转方向
RotateTransform rotate = new RotateTransform();
//绑定旋转中心
chess.RenderTransform = rotate;
//设置旋转中心百分比
chess.RenderTransformOrigin = new Point(0.5, 0.5);
Storyboard story = new Storyboard();
DoubleAnimation doubleAnimation = new DoubleAnimation(chess.Angle, angle, new Duration(TimeSpan.FromSeconds(100)));
Storyboard.SetTarget(doubleAnimation, chess);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("RenderTransform.Angle"));
story.Children.Add(doubleAnimation);
story.Begin();

chess为棋子,chess.Angle初始角度,angle目标角度,动画执行事件100ms

不知道哪里出错了!!!若能解决,可加分!!!
...全文
评论 62
收藏 已收藏
分享
返回顶部
Dear200892
C# 111,129 成员 642,540 内容