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

演示程序下载地址: 【北方网通】    【电信网通】

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

【下载说明】

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

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

点击这里查看原文

Code Project着火了!

    整个工程有三个类,它们可以让你在图象上添加一些很酷的效果。

    我把这些文件都放到我的代码压缩包里面了,并且做了一个小工程来让一些人使用起来更方便,但是我并没有做它们的文档说明。

    当您点击了演示程序上面的“animate”按钮之后,在图象上面移动您的鼠标,点击,然后设置其他的选项。滑动条用来改变血浆效果和火焰效果的透明度。为了使设置生效,你需要释放鼠标。

    通常情况下,你会看到这些效果都是实时的,并且我尽量把这些代码转换成面向对象的类的设计。我最初是在一个音频应用程序上作为vis类型的插件来使用它们的。

    我使用了chris maunder创建的一个CDibSectionLite类,因此我需要做一些工作去渲染图象。这些效果都是采用的32位的图象。

        CWaterRoutine - 渲染水波纹效果
        CFireRoutine - 渲染火焰效果
        CPlasmaRoutine - 渲染血浆效果

    看过这些效果的代码之后,你会注意到这些效果都是在使用一个分离的滤波器来实现的。如果你从来没有看过水波纹的代码的话,你会感觉到惊讶,因为如此简单的代码就可以实现一个这么棒的效果。火焰和血浆效果也是一样。试着改变其中的一些数据成员,你可以做很多其他的效果,不仅仅是演示程序里面的那些效果。

    动画效果仅仅是一个简单的windows定时器实现的。有一点需要注意的是,我是在其他效果之上渲染的这些效果。

你可以随意的使用这些代码,但如果你使用在其他一些更有趣的地方、或者扩充、或者想要抱怨缺乏文档的话,就丢一个email给我吧,或者仅仅是想认识我,呵呵。


【更多阅读】
  1. [原]PjConvertImageFormat:用FreeImage.NET写的一个35种图像格式转换程序
  2. [译]C#水波纹效果控件的实现
  3. [译]使用WM_COPYDATA消息在C++和C#程序之间互传数据
  4. [译]C#控制计算机的并口LPT
  5. [译]用C#检测你的打印机是否连接
  6. [原]IT6633P V0.19 数据手册、设计电路图、程序源代码
  7. [译]使用OpenXML更新Word文档中的表格
  8. [译]C#将Enum枚举映射到文本字符串
  9. [译]在C# .NET2.0实现单实例应用程序
  10. [译]C#实现同一个对话框打开目录和文件

你可能感兴趣的:(C)