android siri声波动画,Waver声波效果开源项目:和 Siri 一起学数学

Waver 是一个基于 UIBezierPath 和 CAShapeLayer 的 Android 声波动画库,灵感来自 SCSiriWaveformView。它提供了优化的性能和灵活的初始化形态调整,能实现类似 Siri 的声波效果。通过调整三角函数参数,可以创建屏幕上的周期性线条,并使用 CADisplayLink 实现实时动画。项目旨在提供一种纯逻辑角度的解决方案,而非依赖傅立叶变换。
摘要由CSDN通过智能技术生成

在上一篇研究了动效之后,这段时间一直在琢磨如何做一些更有趣的东西,所以,昨天我开源了一个新的声波库——Waver,拥有非常动人的声波效果,在此要感谢 SCSiriWaveformView 这个项目,Waver 在他的基础上改成了 Block 的使用方式,同时声波采用我最熟悉的 UIBezierPath 和 CAShapeLayer 实现,并做了一些逻辑上的优化,实现了 8 倍的性能提升。

采用 UIBezierPath & CAShapeLayer 的另外一个好处是更方便对初始形态进行调整,像 Siri 那样可以从圆形变成线条。

187c99ad420c2dede40a1a4644e1af83.png

你也可以下载它的示例视频。

不过对此而言,怎么使用不是最重要的,重要的是怎么实现这样的效果,So,Lets have some fun!

原理

在大概半年多前的时候,iOS 群里曾有过关于如何实现像 Siri 的声波效果的讨论,当时提出的第一个解决方案是 FFT ,网易公开课有斯坦福相关的课程。

傅立叶原理:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。

不过解释或者推导再应用这个原理显然不那么有趣,我想从一个纯粹的逻辑角度出发去解决这个事情。

Mac 上有个非常有趣的软件,叫做 Grapher,你可以在里面输入我们玩的公式,也可以直接下载我们的试验文件。

您可以使用以下代码在网页中设置表格的属性: ``` <!DOCTYPE html> <html> <head> <title>这里是您的网页标题</title> <style> table { border-collapse: collapse; /* 设置表格边框合并 */ width: 100%; /* 设置表格宽度 */ border: 2px solid black; /* 设置表格边框线粗细 */ margin: 0; /* 设置表格外边距为0 */ padding: 0; /* 设置表格内边距为0 */ text-align: center; /* 设置表格文本居中对齐 */ } th, td { border: 2px solid black; /* 设置表格边框线粗细 */ padding: 0; /* 设置单元格内边距为0 */ margin: 0; /* 设置单元格外边距为0 */ } </style> </head> <body> <!--您的表格内容--> <table> <thead> <tr> <th>表头1</th> <th>表头2</th> <th>表头3</th> </tr> </thead> <tbody> <tr> <td>单元格1</td> <td>单元格2</td> <td>单元格3</td> </tr> <tr> <td>单元格4</td> <td>单元格5</td> <td>单元格6</td> </tr> </tbody> </table> </body> </html> ``` 在`<style>`标签中使用`table`选择器来设置表格的属性。您可以设置表格边框合并、宽度等属性。在`<style>`标签中使用`th, td`选择器来设置表头和单元格的属性。您可以设置表格边框、内边距、外边距等属性。在这里,我们将填充和间距均设置为0。在`<table>`标签中添加`<thead>`标签和`<tbody>`标签来分别设置表头和表格内容。在`<thead>`标签中使用`<tr>`标签和`<th>`标签来设置表头内容,在`<tbody>`标签中使用`<tr>`标签和`<td>`标签来设置表格内容。注意,我们设置了`text-align: center;`来将表格文本居中对齐。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值