c#翻页效果

本文详细介绍了如何利用C#和GDI+技术来创建逼真的杂志翻页动画效果,旨在为开发者提供一种实现翻页效果的新方法。
摘要由CSDN通过智能技术生成
用c#和GDI+实现杂志翻页动画效果时间:2010-01-13 blog.csdn.net 周公 -
说明:以前本人参与个一个电子杂志项目,当时要求实现模拟现实生活中的杂志翻页动画效果,别人推荐了这篇文章,最后达到了我想要的效果,今天尝试把这篇文章翻译了一下。希望对英语水平不太好的同行有帮助。如果你的英语水平足够好,我推荐你阅读英文原文,网址是:http://www.codeproject.com/KB/GDI-plus/TurnThePage.aspx,同时希望大家原谅本人的翻译水平。
 
介绍
 
 
图1 翻页效果
 
这篇文章用来介绍如何在电子书或者电子相册中并列显示图片时创建一种翻页效果,这种翻页效果模仿了现实中的书本翻页情况。
 
背景
 
写作这篇文章的灵感来自于一个可重用的用于显示图片的组件的需求。我使用了C#和GDI+来提高我对.net下图形图象编程的理解。
 
创建这种效果的技术背景来自于一篇文章《FalshMX中的翻页效果》,网址是:http://www.oreillynet.com/pub/a/javascript/2004/09/03/flashhacks.html,作者是Sham Bhangal。Sham在文章里如何在动画效果中使用对称线来控制页面的可见部分。尽管在Flash MX中和在GDI+中的处理有些不同,但是利用对称线来计算页面的可见部分这个概念是相同的。
 
在这篇文章中,我们假定第3页和第4页是当前页,并且下一个动作是要翻到第5页和第6页。换句话说,我们要展现的是第4页的翻页效果。
 
动画技巧
 
下图阐述了在整个动画中的关键区域和变化区域。
 
 
图2 关键区域和参数
 
 
本文来自编程入门网:http://www.bianceng.cn/Programming/csharp/201001/14287.htm
整个翻页动画可以概括为:
 
1、完全绘制出第3页和第4页。在绘制完成之后,B和C部分将会遮挡住第4页的原来可见部分。
 
2、计算出对称线和B和C的裁剪区域。
 
3、绘制B部分。这是下面的一页的部分区域(第6页)。
 
4、根据热点进行相应转换,并且进行相应旋转。
 
5、绘制C部分。这是第4页在翻页过程中显示的它的背面(第5页)的内容。
 
当前页
 
《FalshMX中的翻页效果》一文中指出当前页并不参与翻页效果。这就意味着在翻页中的每一面(第3页和第4页)都会首先被不进行任何裁减和转换就绘制出来。B和C这两个可见部分将会在当前页之上进行绘制。
 
热点
 
“热点”这个词是我从《FalshMX中的翻页效果》一文中借鉴过来的。热点一词代表在翻页时折痕在水平轴线上的位置,它标明对称线的起始位置。在翻页过程中,热点一直在从页边缘到书中间这段距离之间移动。从页边到热点的这段距离(x)将随着页面的翻动而变化。当热点到达书的中间位置时,动画就停止了,这时x=PAGE_WIDTH。
 
对称线
 
对称线代表翻页时页面的折痕。它是用于计算在翻页时参与的页面可见部分。在程序中,对称线控制两件事情:
 
1、B和C部分的裁剪区域。
 
 
本文来自编程入门网:http:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中的代码是一个C#的资源管理预览效果的示例。这段代码使用了Presentation库来预览PPT文件,并将其转换为HTML格式。具体的实现过程是通过实例化Presentation类,加载PPT文件,然后将其保存为HTML文件。最后返回HTML文件的地址。这段代码可以用于在C#应用程序中实现PPT文件的预览功能。 引用\[2\]提供了一个关于SharpShell的源码和例程的下载链接。SharpShell是一个用于创建Shell扩展的库,可以用于实现Windows资源管理器的预览处理程序。通过使用SharpShell,可以自定义资源文件的预览效果。 引用\[3\]提供了C++版和C#版的资源管理预览效果的参考链接。C++版的参考链接是关于如何构建缩略图提供程序的,而C#版的参考链接是一个示例项目,展示了如何使用SharpShell来创建自定义的资源预览扩展。这些参考链接可以帮助你更深入地了解如何实现资源管理预览效果。 综上所述,你可以使用C#和SharpShell来实现资源管理预览效果,并参考引用\[1\]中的代码来预览PPT文件。 #### 引用[.reference_title] - *1* [c#预览office文档最全面的例子](https://blog.csdn.net/qq_42638454/article/details/103577309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C#实现Windows资源管理器文件预览](https://blog.csdn.net/hey_zng/article/details/50925571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【C#在资源管理器中显示自定义文件格式的缩略图】](https://blog.csdn.net/weixin_44029053/article/details/127040937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值