繁体   English   中英

给定整数振幅点,如何绘制平滑曲线?

[英]How do you draw smooth curves given integer amplitude points?

我试图绘制一个正弦波波形(认为Siri),该波形会拾取并立即受到用户声音的影响。 如果我能够在Android上像S4这样的设备上尽可能地流畅地完成任务,我将非常满意,因此,非常感谢您提供任何有用的信息。

现在,我了解了如何使用MediaRecorder以“ tick”( 参考 )值获取最大幅度,并且可以在MediaRecorder记录和拾取音频时将这些整数值中的几个存储在数组中,但是我没有想出如何将整数数组转换为类似我上面发布的Github项目的东西。 如果有人可以建议该数组的大小,我也将不胜感激,因为我想尽快转储旧数据,以使动画更快并使用尽可能少的内存。

我的方法如下:您可以存储最后5个值(在您的示例中,一次显示大约5-6行)。

然后,针对这5个值中的每个值:取最大振幅值作为参考,并将其用于计算当前值的百分比。 将该百分比与sin(x) Math.sin函数一起使用可平滑曲线:

例:

MAX_AMPL:1200 CURR_VALUE:240-> MAX_AMPL的20%

使用android上的图元Drwaing在android上绘制f(x)=(CURR_VALUE / MAX_VALUE)Math.Sin(x)如果在0至2Pi之间绘制函数,我想您将获得与示例中相同的波数。

值越新(值ArrayList中的位置),消失效果的行越宽。 最后,从最旧到最新绘制图形。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM