C++实现水波纹、火焰和血浆效果
Code Project着火了!
整个工程有三个类,它们可以让你在图象上添加一些很酷的效果。
我把这些文件都放到我的代码压缩包里面了,并且做了一个小工程来让一些人使用起来更方便,但是我并没有做它们的文档说明。
当您点击了演示程序上面的“animate”按钮之后,在图象上面移动您的鼠标,点击,然后设置其他的选项。滑动条用来改变血浆效果和火焰效果的透明度。为了使设置生效,你需要释放鼠标。
通常情况下,你会看到这些效果都是实时的,并且我尽量把这些代码转换成面向对象的类的设计。我最初是在一个音频应用程序上作为vis类型的插件来使用它们的。
我使用了chris maunder创建的一个CDibSectionLite类,因此我需要做一些工作去渲染图象。这些效果都是采用的32位的图象。
CWaterRoutine - 渲染水波纹效果
CFireRoutine - 渲染火焰效果
CPlasmaRoutine - 渲染血浆效果
看过这些效果的代码之后,你会注意到这些效果都是在使用一个分离的滤波器来实现的。如果你从来没有看过水波纹的代码的话,你会感觉到惊讶,因为如此简单的代码就可以实现一个这么棒的效果。火焰和血浆效果也是一样。试着改变其中的一些数据成员,你可以做很多其他的效果,不仅仅是演示程序里面的那些效果。
动画效果仅仅是一个简单的windows定时器实现的。有一点需要注意的是,我是在其他效果之上渲染的这些效果。
你可以随意的使用这些代码,但如果你使用在其他一些更有趣的地方、或者扩充、或者想要抱怨缺乏文档的话,就丢一个email给我吧,或者仅仅是想认识我,呵呵。
C++实现水波纹、火焰和血浆效果的更多相关文章
- css 实现水波纹,波浪动画效果
<div class="wave"> 水波纹效果 <div class="wave1"></div> <div cla ...
- 三角函数之美-水波纹载入LoadingView
一.前言 学习是要总结的.近期几天学习了画图相关的,可是使用的机会较少,如今又快要遗忘了,这次看了水波纹的绘制.认为十分有意思,还是 把实现的方法记录下来.技术无他,为手熟尔.还是要多练习,空淡误国, ...
- Unity——火烧+水波纹效果(噪音图)
使用噪声图实现火烧和水波纹效果: 1.溶解 关闭裁剪,根据noise纹理取样,r通道和_BurnAmount比较,裁剪掉小于_BurnAmount的片元: 通过菲尼尔得到裁剪边缘,添加火焰燃烧的颜色进 ...
- jquery ripples水波纹效果( 涟漪效果)
这个效果是我从bootstrap-material-design上面分离下来的,bootstrap-material-design的一些组件样式我不太不喜欢,但是非常喜欢这个水波纹效果,所以就有了这篇 ...
- 如何使用 HTML5 Canvas 制作水波纹效果
今天,我们继续分享 JavaScript 实现的效果例子,这篇文章会介绍使用 JavaScript 实现水波纹效果.水波效果以图片为背景,点击图片任意位置都会触发.有时候,我们使用普通的 Javasc ...
- 兼容Android的水波纹效果
Android的水波纹效果只有高版本才有,我们希望自己的应用在低版本用低版本的阴影,高版本用水波纹,这怎么做呢?其实,只要分drawable和drawablev21两个文件夹就好了. 普通情况下的se ...
- android自定义控件(4)-自定义水波纹效果
一.实现单击出现水波纹单圈效果: 照例来说,还是一个自定义控件,观察这个效果,发现应该需要重写onTouchEvent和onDraw方法,通过在onTouchEvent中获取触摸的坐标,然后以这个坐标 ...
- 自定义view实现水波纹效果
水波纹效果: 1.标准正余弦水波纹: 2.非标准圆形液柱水波纹: 虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余弦函数模拟水波纹效果,另外一个会运用到图像的混合模式(PorterDuffX ...
- Android 颜色渲染(七) RadialGradient 环形渲染实现水波纹效果
利用环形渲染我们可以做到什么? 其实很多都是非常常见的,比如上一篇实现的帮帮糖效果, 彩色的热气球,比如这里要讲到的水波纹效果,或者也可以理解为扩散色渲染效果 首先看一下效果图: 轻触屏幕,即可看到对 ...
随机推荐
- SharePoint 2013 Nintex Workflow 工作流帮助(十二)
博客地址 http://blog.csdn.net/foxdave 工作流动作 31. Create task(User interaction分组,企业版才有) 该操作用于在Microsoft Ex ...
- Android-LogCat日志工具(一)
LogCat : Android中一个命令行工具,可以用于得到程序的log信息. 就像你知道一个人的日志.航程,你可以无时无刻知道一个人在干什么. 而LogCat , 就是程序的日志.通过日志,你可以 ...
- MySQL语句45道练习题及答案
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- 【IOS基础知识】NSTimer定时器使用
1.声明 NSTimer *timer; 2.定义 timer = [NSTimerscheduledTimerWithTimeInterval:1.0ftarget:selfsele ...
- CentOS中vsftp安装与配置
http://blog.chinaunix.net/uid-7271021-id-3086186.html 553 Could not create file 解决办法 [root@localhost ...
- ajax注释
//xmlHttpRequest,但是这个对象只是在火狐,google...//在中国用的最广泛的IE浏览器里面是没有这个对象的//在IE里面是用的一个控件来解决这个问题,ActiveXObject/ ...
- vijos 1779 国王游戏
练了一下高精度..结果敲了这么久... #include<iostream> #include<cstdio> #include<cstring> #include ...
- csharp_ToJson的正确写法
网上搜的,但有问题,已经改好...现在这个是正确的 public static string ToJson(DataTable dt, string jsonName) { ...
- 使用httputils上传图片到服务器
//创建httpUtils对象 HttpUtils mRegHttpUtils = new HttpUtils(); //图片路径 String path = "/sdcard/Downlo ...
- 多个storyboard开发应用程序,封装.bundle和.a不用xib使用storyboard!!!
一,封装.bundle和.a使用xib的方式前面已经说过了,具体方式不再赘述,简单介绍于下: 静态库加.h bundle:删plist,改sdk,加xib 简称psx三步 引用库的项目,加.a .b ...