首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

水波扩散效果(shader)

水波扩散是一个比较好看交互效果,特别是在某些以水为故事发生场景游戏中,扩散水波会让场景更加栩栩如生 ?...demo 实现思路 如果水波静止,我们看到其实是像素点围绕着某个中心点拉伸效果,我们只需让每个像素点叠加上它和中心点向量差,就能够呈现出画面上所有像素围绕中心点拉伸感。...周期性往外涌 这种呼吸灯式涌动其实和我们最终效果有很大区别,因为它永远在循环涌动,但是我们水波是从中心扩散出去之后,中间部分就不再动了,怎么让中间像素不再多次涌动呢?...如果把一圈水波比作圆,那水波扩散行为其实就是这个圆半径在不断增大,圆外面的波纹有效,圆里面的波纹静止。...未调优效果 接下来就是参数调试,主要是三角函数采样那里,我们希望水波能够产生多个波动,所以我们需要乘上一定倍数,让函数作用范围足够大,才能有足够多波峰谷底。

2.3K20

充电水波摇晃效果

充电摇晃效果 大体上采用伪元素来实现电池充电效果 实现效果 实现思路 首先搭建一个html框架,建出电池模型 先尝试利用动画实现水面上升效果 利用伪元素不规则圆,定位在水上半部分,让这个不规则圆...,来遮盖水,从而使水面出现不均,再让不规则圆旋转,使得,遮盖水面的情况不一样,形成涟漪效果 再利用伪元素,同样方法建一个不规则圆,给点透明度,出现背后阴影效果 要点分析 创建明显水纹 .wave...::before { position: absolute; content: ''; top: -185px; left: -50px;//通过调试定位到合适位置...//在上面的基础上添加一定透明度 opacity: .5; 完整代码 <!...,发现自己还有很多不足,有很多知识点疏漏,希望面前你,能够再细致一点,再努力一点,加油吧!

56620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 水波效果探究

    长按水波纹扩展效果 前言 水波效果从Android5.0就已经出来了,基本使用相信大家都知道了,这里多谈一些相对深层次使用: 1、基本使用 2、水波效果与布局绘制之间问题 3、长按水波纹扩散效果...Mask内容并不会被绘制到屏幕上,它作用是限定Ripple效果绘制区域。 最后可以得到我们想要效果: ? image.png 长按水波纹扩散效果 ?...长按水波纹扩展效果 在使用小红书时,我们可以看到关于“笔记”item长按会展示扩散效果,其实原理也很简单。...无边界水波纹可以达到长按扩散效果,只是它会超出边界,那我们就在对应父布局加一层有边界水波纹背景即可。...参考资料 Ripple 水波效果 聊聊Android5.0中水波效果 解决点击ripple水波纹无效问题 UI之修改Button颜色保持默认点击效果

    2.3K20

    Android 5.0 实现水波扩散效果

    本文实例为大家分享了Android 5.0 实现水波扩散效果具体代码,供大家参考,具体内容如下 该效果是通过自定义界面来实现 1、首先自定义属性,attrs.xml代码如下: <?...2、自定义RippleView类继承RelativeLayout布局,也可以由需求所定继承于其它类,实现水波扩散效果主要有两点:水波扩散绘制和动画 1)水波绘制其实就是绘制一个圆形 canvas.drawCircle...(mDownX, mDownY, mRadius, mRipplePaint); 2)动画效果就是该圆形绘制从小到大过程,而该圆形到最大时半径长度就是当前所在布局对角线长度: @Override...private ObjectAnimator mRippleAnim;// 显示水波动画 private float mRadius;// 当前半径 private float mMaxRadius...;// 水波最大半径 private float mDownX; // 记录手指按下位置 private float mDownY; private boolean mIsMask; private

    71520

    使用Python实现水波效果:逼真的水波动画

    引言 水波效果是一种常见且迷人视觉效果,广泛应用于游戏和图形设计中。在这篇博客中,我们将使用Python创建一个逼真的水波动画。...通过利用Pygame库和基于网格算法,我们可以实现动态水波效果。 准备工作 前置条件 在开始之前,你需要确保你系统已经安装了Pygame库。...: pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("水波效果") clock...= pygame.time.Clock() 定义水波类 我们创建一个Water类来定义水波属性和行为: class Water: def __init__(self, width, height...我们定义一个函数来绘制水波效果: def draw_water(screen, water): for y in range(water.height): for x in range

    5510

    Android:RippleDrawable 水波纹涟漪效果

    二、RippleDrawable基本概念介绍 (1)、RippleDrawable RippleDrawable可以实现上面效果图中水波效果,它是在API 21 中添加,所以,低于21版本中不可使用...没有指定mask ,并且也没有指定radius 时,会以控件宽高中较大值为直径绘制水波纹,这样就必然会超出控件范围,所以,这种效果也叫做 无界水波效果。...指定mask 后 ,id 为 mask item 中指定drawable 可以限定水波范围。 三、代码示例: (1)、xml 中定义 ripple 下列代码依次对应效果图中前6个。...--无界水波效果,所谓无界,实际是以空间宽度或高度中大值作为直径绘制一个园--> <TextView android:layout_width...--有界水波效果

    2.6K20

    Android实现水波纹扩散效果

    本文实例为大家分享了Android实现水波纹扩散效果具体代码,供大家参考,具体内容如下 先上图 ? 囧!没有图片所以就拿了小安代替了。 先看一下如何使用这个View。...mInitDataSucceed){ initData(); } } 显示图片View大小,该怎么给?这是个比较蛋疼问题。给大了就看不到扩散效果了,给小,给多少值合适呢?...有没有正好值,有的用父 view size / 子 view 放大倍数,这样肯定会达到理想效果。...= 3;//波纹view个数 private static final float DEFAULT_SCALE = 1.6f;//波纹放大后大小 //点击有扩散效果view private CircleImageView...position); wave.startAnimation(mAnimas.get(position)); super.handleMessage(msg); } }; 参考地址:Android实现水波纹外扩效果

    2.2K30

    Android实用View:水波动画效果(多种方式)

    View实现水波动画效果文章,其实在去年项目中使用过类似的动画,当时就自定义View也实现了预期效果,最近项目中又使用了相似的效果,于是对代码重新整理了一下并且记录下来,便于以后有类似需求可以当作参考...;φ,相位,我们就是根据不断改变相位来达到波形移动效果,每次移动多少可以从外界传入,便于控制速度;K,波形偏移上下距离,知道了以上各个参数具体使用意义,下边就可以直接通过代码看下具体实现效果了,毕竟公式都有了...计算控制点纵坐标的方式.png 根据计算得到起点和控制点坐标之后就可以写代码运行了效果和上边运行效果一样就不再展示了,上边计算内容就解释了代码提出问题 ?...正余弦函数波形使用是根据相位控制,而贝塞尔曲线实现波形效果是不断改变波起始位置控制,并且使用贝塞尔曲线的话需要先在屏幕外边绘制一个完整波形,保证在平移过程中可以看到图像不间断移动来达到移动波形效果...最终效果:录制模拟感觉有点卡顿,请真机测试哦.gif 看到这里你是你会感觉到这篇文章内容其实很简单,只要中间几个点注意一下就可以实现相应效果了,建议朋友们动手敲一遍代码,加深一下印象,毕竟真是做出来和知道理论没有实践还是有很大区别的

    80820

    修改Vue.js版本,以修复MuseUI没有水波效果BUG

    前言 学习Vue了一段时间,个人还是比较喜欢Material Design风格框架,找了很久,最满意也就是Muse-ui了。...然后就发现了一个超级恶心和严重问题,它不支持Vue@2.6.8以上版本。...具体表现就是版本不符时候没有基本波纹效果(要MD就是要找个风格没有这个我玩nm),我本来以为是Chrome问题,但是,直到我提交了issue,得到回答查了很多资料,就连官方都没告诉你怎么降版本,自己捣鼓了一晚上算是搞定了...vue-template-compiler npm uninstall vue npm uninstall vue-template-compiler vue-template-compiler这个和vue是同版本号,...结束 真的发现真正干货网上太少了,或者有人写过但是博客和我一样是个人博客,压根搜不到。唉 如果这篇文章帮助到你了,请分享给你朋友,感激不尽。

    1.2K10

    Android实现水波纹外扩效果实例代码

    微信曾经推出了一个查找附近好友功能,大致功能是这样:屏幕上有一个按钮,长按按钮时候,会有一圈圈水波动画向外扩散,松手后,动画结束。...现在简单来实现这样一个动画功能: 思路: 主要用到了下面的蓝色图片,定义三个ImageView,background都设置为蓝色图片,然后定义一个包括缩放和透明度变化动画集,然后每隔一段时间,...让3个ImageView依次启动这个动画集,看起来就像蓝色圆圈像水波纹向外扩散一样。...clearWaveAnimation() { mWave1.clearAnimation(); mWave2.clearAnimation(); mWave3.clearAnimation(); } } 效果如下...以上就是本文全部内容,希望对大家学习有所帮助。

    76820

    Vue组件设计 | 实现水波涟漪效果点击反馈指令

    1.jpg 鼠标移入时小手、鼠标点击时按钮下压弹起动画、触屏应用点击时屏幕震动,这些效果都给予用户一种是我行为产生了这样效果直觉,这些效果也被统称为点击反馈,虽然看似是应用中细枝末节,但是只要稍微投入一点点心思...,带来用户体验提升是十分明显 水波效果 这里作者为小伙伴们推荐一种作者最喜欢点击反馈效果。...当用户点击时,会以点击中心为圆心产生一个水波扩散涟漪效果,适用各个场景,美观又不浮夸,关键是可以给用户带来很直观反馈。...第一个箭头: 期望得到水波 第二个箭头: 元素(0,0)点创建水波 第三个箭头: 元素(0,0)点创建水波, 不带圆角效果 A8214090-1AC5-4091-BEF0-CFA38B105E35....png 我们可以发现通过元素(0,0)点创建水波进行一定偏移就可以得到我们想要水波,由此我们可以推断出 动画结束时水波尺寸 = 圆斜边 创建时(x,y) = 用户点击位置 过度动画结束时

    82730

    Android5.0中多种水波效果实现代码

    水波效果已经不是什么稀罕东西了,用过5.0新控件小伙伴都知道这个效果,可是如果使用一个TextView或者Button或者其它普通控件的话,你是否知道如何给它设置水波效果呢?...OK,我们今天就来看看这个水波效果实现。水波效果实现有系统自带属性可以实现,我们也可以自定义实现效果。...1.系统自带水波纹实现方式有界水波水波效果大致上可以分为两种,一种是有界,一种无界,我们先来看看有界水波效果效果: ?.../ 所谓无界并非完全无界,而是以控件宽高中最大数值作为水波效果所在正方形边界进行绘制。OK,这两种都是系统自带水波效果,如果我们想要自定义又该怎么做呢?...Ok,这就是5.0中水波效果使用。

    1.4K20

    如何实现一个丝滑点击水波效果

    本文为Varlet组件库源码主题阅读系列第九篇,读完本篇,可以了解到如何使用一个div创建一个点击水波效果。...setStyles(this) // 将水波元素添加到被点击元素内 this.appendChild(ripple) // 20ms后修改水波元素样式,达到水波扩散动画效果...过渡属性即可实现过渡效果,也就是水波扩散效果,样式是通过类名var-ripple设置: :root { --ripple-cubic-bezier: cubic-bezier(0.68, 0.01...因为水波元素为被点击元素子元素,所以这些坐标都是相对于被点击元素左上角坐标计算: 从绿色圆过渡成红色圆,透明度、大小、位置变化就是水波扩散效果。...setTimeout(task, 60) : task() } 先回顾一下创建水波各个阶段耗时,当我们第一次点击元素时,等待60ms后会创建水波元素,然后再等待20ms后会开始进行水波扩散效果,动画耗时

    58420
    领券