一起Talk Android吧(第四百一十六回:绘制正弦波总结)

各位看官们,大家好,上一回中咱们说的例子是"使用圆弧绘制正弦波",这一回咱们介绍的例子是"绘制正弦波总结"。闲话休提,言归正转,让我们一起Talk Android吧!

看官们,本章回主要是对前面章回内容的总结,同时分享编程的经验,下面是具体的内容,请大家参考:

总结介绍

我们在绘制正弦波时是通过路径进行的绘制的,先是给路径中添加关键点,把点连成线,这样就形成了圆弧。绘制过程关键点的数量比较多,代码比较繁杂,因此有了优化代码的想法:减少关键点的数量

当关键点减少到一定数量后就不能再减少了,优化就遇到了瓶颈,于是更换一种方法继续优化,新方法就是使用圆弧代替关键点。相当于直接使用线去画图,而不是使用点去画图。这种方式相当于从面向过程编程进化到了面向对象编程。

直接使用点绘制

在路径中添加大量的关键点,添加的点越多弧度效果越好。这是最开始使用的方式,其缺点就是点的数量太多,代码有些繁杂。

使用点和圆角效果绘制

在路径中添加少量的关键点,然后使用画笔的圆角效果,这样不需要太多的关键点就可以达到弧度效果。这是第一步的优化。与最开始使用的方式相比,可以减少五分之一的关键点数量。注意:要调整好圆角的弧度,不然波形效果也不明显。

使用点和面绘制

在路径中添加部分关键点,先画出部分波形,然后旋转画布画出剩下的波形,这里的画布可以看作是面,点和面结合减少了二分之一的关键点数量。

这种优化就是我们在前面博客中提到的一阶优化。在此基础上进行了二阶优化,减少了四分之三的关键点的数量,详细的优化过程我们就介绍了,大家可以查看前面博客中的内容。

使用线绘制

路径中的关键点数量在优化的方法下不断减少,但是减少到一定数量后就不能再减少了。因此就会遇到优化瓶颈,为了解决瓶颈问题,我们使用了新的方法来绘制:使用圆弧绘制。详细内容可以参考上一篇博客。这里的圆弧可以看作是线,使用点绘制和使用线绘制是不同的思路。

经验分享

我们解决问题时首先要找到解决方案,然后再针对解决方案进行优化,优化时一定就明白从哪个角度去优化,也就是说要有整体的优化思路。

比如在路径中添加关键点就可以画出正弦波形,这可以看作是一种解决方案。不过此方案有些缺点,我们需要对它做优化,优化的思路就是减少关键点的数量,我们通过画笔圆角做了第一次优化,又通过点面结合的方式做了两次优化:一阶优化和二阶优化。还有一个三阶优化没有介绍,不过按照此思路优化下去会出现瓶颈。

遇到瓶颈后就要找到产生瓶颈的原因,然后用更换思路的方式进行优化进而突破瓶颈。

比如我们使用圆弧绘制时就是发现关键点的数量无法减少了,因此使用线代替点来绘制波形,这就想出了使用圆弧绘制的方法。

使用圆弧画正弦波有种车到山前必有路的感觉,它的背后使用了编程中的面向对象思想:添加关键点是面向过程,而把点组成
线就是面向对象。这便是一种包含在程序中的编程思想,或者说编程哲学。

最后我想说的是:

在编程中我们需要不断地优化程序,不断地提高程序效率。如果走到了尽头,那么就换一种新思路继续优化。

阅读建议

绘制正弦波形一共写了三篇文章,它们是一个整体,如行云流水般顺畅。因为我是一气呵成写完的,一直写到凌晨才结束,总担心思路断开后不好再接上。在此,我建议看官们把这三篇文章放在一起去看,这样可以收到更好的效果。这三篇文章中有一篇文章中是收费的,只需要订阅我的收费专栏就可以,提前大家做个说明。

看官们,关于Android中"绘制正弦波总结"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值