用WPF轻松打造iTunesCoverFlow效果.doc

用WPF轻松打造iTunesCoverFlow效果.doc

ID:52722067

大小:259.00 KB

页数:3页

时间:2020-03-30

用WPF轻松打造iTunesCoverFlow效果.doc_第1页
用WPF轻松打造iTunesCoverFlow效果.doc_第2页
用WPF轻松打造iTunesCoverFlow效果.doc_第3页
资源描述:

《用WPF轻松打造iTunesCoverFlow效果.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、苹果iTunes播放器的CoverFlow效果羡煞旁人,不过有了WPF,我们也可以轻松实现哈,今天费了半天的时间终于搞定,呵呵...先Show一下:  下面这一张是苹果的iTunes软件:3/3  感兴趣的话可以这里下载源代码  (说明:上传源代码时由于图片较大,所以就没传图片了,程序取的是用户"我的图片"文件夹下的*.jpg图片,你可以修改代码中的路径或在"我的图片"文件夹下放几张jpg图片就可以看到效果了>b5E2RGbCAP图片是使用3DTools提供的2D到3D映射的方式贴图上去的,每张图片都帖在一个3D模型

2、上,我们只需要让程序来安排这些模型的摆放位置就可以了。p1EanqFDPw  3D模型的摆放是按照如下方法进行的,其中3个传出参数angle指定模型源Y轴的旋转角度,offsetX指定模型的X轴方向上的平移量,offsetZ指定模型在Z轴方向上的平移量.DXDiTa9E3d以下是引用片段:   /**////    /// 依照InteractiveVisual3D在列表中的序号来变换其位置等   ///    /// 在列表中的序号   /// 列表中被作为中间项的序号   private void GetTran

3、sformOfInteractiveVisual3D(int index, double midIndex, out double angle, out double offsetX, out double offsetZ>   {   double disToMidIndex = index - midIndex。       //旋转,两翼的图片各旋转一定的度数   angle = 0。   if (disToMidIndex < 0>   {   angle = this.ModelAngle。//左边的旋转N

4、度   }   else if (disToMidIndex > 0>   {   angle = (-this.ModelAngle>。//右边的旋转-N度   }         //平移,两翼的图片逐渐向X轴负和正两个方向展开   offsetX = 0。//中间的不平移   if (Math.Abs(disToMidIndex> <= 1>   {   offsetX = disToMidIndex * this.MidModelDistance。   }   else if (disToMidIndex !

5、= 0>   {   offsetX = disToMidIndex * this.XDistanceBetweenModels + (disToMidIndex > 0 ? this.MidModelDistance : -this.MidModelDistance>。   }       //两翼的图片逐渐向Z轴负方向移动一点,造成中间突出(离观众较近的效果>   offsetZ = Math.Abs(disToMidIndex> * -this.ZDistanceBetweenModels。3/3     } 

6、 点击图片或指定当前应该被突出显示的图片时的动画效果是这样实现的,先使用上面的方法计算出决定模型位置的几个便量的新值(即上面的几个传出参数>,然后在使用动画(DoubleAnimation>让这几个值由旧值过度到新值.RTCrpUDGiT以下是引用片段:   /**////    /// 重新布局3D内容   ///    private void ReLayoutInteractiveVisual3D(>   {   int j=0。   for (int i = 0。 i < this.viewport3D.Ch

7、ildren.Count。 i++>   {   InteractiveVisual3D iv3d = this.viewport3D.Children[i] as InteractiveVisual3D。   if(iv3d != null>   {   double angle = 0。   double offsetX = 0。   double offsetZ = 0。   this.GetTransformOfInteractiveVisual3D(j++, this.CurrentMidIndex,out

8、 angle,out offsetX,out offsetZ>。       NameScope.SetNameScope(this, new NameScope(>>。   this.RegisterName("iv3d", iv3d>。   Duration time = new Duration(TimeSpan.FromSeconds(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。