您的位置:首页 > 编程语言 > C语言/C++

C++实现水波纹、火焰和血浆效果

2012-10-08 14:12 281 查看
演示程序下载地址: 【北方网通】 【电信网通】

源代码下载地址: 【北方网通】 【电信网通】

【下载说明】

1 点击上面的地址,打开下载页面

2 点击"普通下载"--等待30秒--点击"下载"按钮--保存

点击这里查看原文



Code Project着火了!
整个工程有三个类,它们可以让你在图象上添加一些很酷的效果。
我把这些文件都放到我的代码压缩包里面了,并且做了一个小工程来让一些人使用起来更方便,但是我并没有做它们的文档说明。
当您点击了演示程序上面的“animate”按钮之后,在图象上面移动您的鼠标,点击,然后设置其他的选项。滑动条用来改变血浆效果和火焰效果的透明度。为了使设置生效,你需要释放鼠标。
通常情况下,你会看到这些效果都是实时的,并且我尽量把这些代码转换成面向对象的类的设计。我最初是在一个音频应用程序上作为vis类型的插件来使用它们的。
我使用了chris maunder创建的一个CDibSectionLite类,因此我需要做一些工作去渲染图象。这些效果都是采用的32位的图象。
CWaterRoutine - 渲染水波纹效果

CFireRoutine - 渲染火焰效果

CPlasmaRoutine - 渲染血浆效果
看过这些效果的代码之后,你会注意到这些效果都是在使用一个分离的滤波器来实现的。如果你从来没有看过水波纹的代码的话,你会感觉到惊讶,因为如此简单的代码就可以实现一个这么棒的效果。火焰和血浆效果也是一样。试着改变其中的一些数据成员,你可以做很多其他的效果,不仅仅是演示程序里面的那些效果。
动画效果仅仅是一个简单的windows定时器实现的。有一点需要注意的是,我是在其他效果之上渲染的这些效果。
你可以随意的使用这些代码,但如果你使用在其他一些更有趣的地方、或者扩充、或者想要抱怨缺乏文档的话,就丢一个email给我吧,或者仅仅是想认识我,呵呵。

【更多阅读】

[原]PjConvertImageFormat:用FreeImage.NET写的一个35种图像格式转换程序
[译]C#水波纹效果控件的实现
[译]使用WM_COPYDATA消息在C++和C#程序之间互传数据
[译]C#控制计算机的并口LPT
[译]用C#检测你的打印机是否连接
[原]IT6633P V0.19 数据手册、设计电路图、程序源代码
[译]使用OpenXML更新Word文档中的表格
[译]C#将Enum枚举映射到文本字符串
[译]在C# .NET2.0实现单实例应用程序
[译]C#实现同一个对话框打开目录和文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: