点击这里查看原文

Code Project着火了!

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

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

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

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

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

CWaterRoutine - 渲染水波纹效果

        CFireRoutine - 渲染火焰效果

        CPlasmaRoutine - 渲染血浆效果

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

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

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

C++实现水波纹、火焰和血浆效果的更多相关文章

  1. css 实现水波纹,波浪动画效果

    <div class="wave"> 水波纹效果 <div class="wave1"></div> <div cla ...

  2. 三角函数之美-水波纹载入LoadingView

    一.前言 学习是要总结的.近期几天学习了画图相关的,可是使用的机会较少,如今又快要遗忘了,这次看了水波纹的绘制.认为十分有意思,还是 把实现的方法记录下来.技术无他,为手熟尔.还是要多练习,空淡误国, ...

  3. Unity——火烧+水波纹效果(噪音图)

    使用噪声图实现火烧和水波纹效果: 1.溶解 关闭裁剪,根据noise纹理取样,r通道和_BurnAmount比较,裁剪掉小于_BurnAmount的片元: 通过菲尼尔得到裁剪边缘,添加火焰燃烧的颜色进 ...

  4. jquery ripples水波纹效果( 涟漪效果)

    这个效果是我从bootstrap-material-design上面分离下来的,bootstrap-material-design的一些组件样式我不太不喜欢,但是非常喜欢这个水波纹效果,所以就有了这篇 ...

  5. 如何使用 HTML5 Canvas 制作水波纹效果

    今天,我们继续分享 JavaScript 实现的效果例子,这篇文章会介绍使用 JavaScript 实现水波纹效果.水波效果以图片为背景,点击图片任意位置都会触发.有时候,我们使用普通的 Javasc ...

  6. 兼容Android的水波纹效果

    Android的水波纹效果只有高版本才有,我们希望自己的应用在低版本用低版本的阴影,高版本用水波纹,这怎么做呢?其实,只要分drawable和drawablev21两个文件夹就好了. 普通情况下的se ...

  7. android自定义控件(4)-自定义水波纹效果

    一.实现单击出现水波纹单圈效果: 照例来说,还是一个自定义控件,观察这个效果,发现应该需要重写onTouchEvent和onDraw方法,通过在onTouchEvent中获取触摸的坐标,然后以这个坐标 ...

  8. 自定义view实现水波纹效果

    水波纹效果: 1.标准正余弦水波纹: 2.非标准圆形液柱水波纹: 虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余弦函数模拟水波纹效果,另外一个会运用到图像的混合模式(PorterDuffX ...

  9. Android 颜色渲染(七) RadialGradient 环形渲染实现水波纹效果

    利用环形渲染我们可以做到什么? 其实很多都是非常常见的,比如上一篇实现的帮帮糖效果, 彩色的热气球,比如这里要讲到的水波纹效果,或者也可以理解为扩散色渲染效果 首先看一下效果图: 轻触屏幕,即可看到对 ...

随机推荐

  1. SharePoint 2013 Nintex Workflow 工作流帮助(十二)

    博客地址 http://blog.csdn.net/foxdave 工作流动作 31. Create task(User interaction分组,企业版才有) 该操作用于在Microsoft Ex ...

  2. Android-LogCat日志工具(一)

    LogCat : Android中一个命令行工具,可以用于得到程序的log信息. 就像你知道一个人的日志.航程,你可以无时无刻知道一个人在干什么. 而LogCat , 就是程序的日志.通过日志,你可以 ...

  3. MySQL语句45道练习题及答案

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  4. 【IOS基础知识】NSTimer定时器使用

    1.声明 NSTimer         *timer; 2.定义 timer = [NSTimerscheduledTimerWithTimeInterval:1.0ftarget:selfsele ...

  5. CentOS中vsftp安装与配置

    http://blog.chinaunix.net/uid-7271021-id-3086186.html 553 Could not create file 解决办法 [root@localhost ...

  6. ajax注释

    //xmlHttpRequest,但是这个对象只是在火狐,google...//在中国用的最广泛的IE浏览器里面是没有这个对象的//在IE里面是用的一个控件来解决这个问题,ActiveXObject/ ...

  7. vijos 1779 国王游戏

    练了一下高精度..结果敲了这么久... #include<iostream> #include<cstdio> #include<cstring> #include ...

  8. csharp_ToJson的正确写法

    网上搜的,但有问题,已经改好...现在这个是正确的 public static string ToJson(DataTable dt, string jsonName)        {        ...

  9. 使用httputils上传图片到服务器

    //创建httpUtils对象 HttpUtils mRegHttpUtils = new HttpUtils(); //图片路径 String path = "/sdcard/Downlo ...

  10. 多个storyboard开发应用程序,封装.bundle和.a不用xib使用storyboard!!!

    一,封装.bundle和.a使用xib的方式前面已经说过了,具体方式不再赘述,简单介绍于下: 静态库加.h  bundle:删plist,改sdk,加xib 简称psx三步 引用库的项目,加.a .b ...