点击这里查看原文

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. xcode开发的6个小技巧

    Xcode是iPhone和iPad开发者用来编码或者开发iOS app的IDE.Xcode有很多小巧但很有用的功能,很多时候我们可能没有注意到它们,也或者我们没有在合适的水平使用这些功能简化我们的iO ...

  2. SharePoint 列表应用实例 - 显示约束

    博客地址:http://blog.csdn.net/FoxDave 有时会碰到这样的需求,比如上传周报到文档库,周报只能领导和自己看到,其他同事是看不到的.通常我们开发的人遇到这种情况条件反射地想到的 ...

  3. git——学习笔记(二)远程仓库

    GIT杀手锏之一——远程仓库 拥有远程仓库的两个办法 1:搭一个Git服务器  2:在GitHub上免费托管的Git仓库 本地仓库   远程仓库 一.在GitHub上免费托管的Git仓库 电脑: 1. ...

  4. hdu4417 划分树+二分

    //Accepted 14796 KB 453 ms //划分树 //把查询的次数m打成n,也是醉了一晚上!!! //二分l--r区间第k大的数和h比较 #include <cstdio> ...

  5. PED结构获取进程路径和命令行地址

    1.FS寄存器 2.进入FS寄存器地址,7FFDD000 3.偏移30为PED结构 4.偏移地址10 3C,44偏移:路径地址,命令行地址 // 通过PEB结构去查找所有进程模块 void *PEB ...

  6. Design Patterns

    经典的<设计模式>一书归纳出23种设计模式,本文按<易学设计模式>一书归纳分类如下:1.创建型模式 前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和 ...

  7. cocos2dx 搭建 android 平台

    Mac OS X下配置Cocos2d-x for Android(Eclipse)&IOS(Xcode)开发环境 前面一段时间只用Cocos2d-x在IOS平台下开发, 学习Cocos2d-x ...

  8. 《你不知道的JavaScript》第二部分:this 详解

    第1章 关于this this 是自动定义在所有函数的作用域中的关键字,用于引用合适的上下文对象. ☞ 为什么要使用 this ? this 提供了一种更优雅的方式来隐式"传递"一 ...

  9. 【ES5】hideProperty

    function hideProperty(host, name, value) { Object.defineProperty(host, name, { value: value, writabl ...

  10. The implementation of Lua 5.0 阅读笔记(二)

    6 线程和协程 读完这篇文章我才意识到python的协程到底缺了什么,这个就是coroutine和semi-coroutine的区别了.区别就是,semi-coroutine只能返回(yield)到调 ...