Processing从入门到精通

历时半年时间,把 Daniel Shiffman 的 《The nature of code》 通读2遍,第一遍快速浏览,第二遍编码实操,极大了提升了自己实际问题代码抽象化的能力,遂做此小结。

为什么要学Processing

Processing是一款所编即所得的软件,使用语言是Java,软件内置各种图像工具,可以很快的编码出图像类的交互形态,非常合适新手入门代码,或编码展示交互原型。

可以学到什么

1.伪码的逻辑性

不同语言有不同的语法,但其背后的逻辑是相通的。因此编码前,注重锻炼自己的伪码思考能力。当伪码逻辑顺畅后,编码只是将逻辑语言转化成代码语言。碰到问题,先从伪码思考逻辑,能极大的提高自己的实际问题代码抽象化的能力。

2.面向对象编程思想

面向对象编程思想概念本身学起来不难。将某个任务抽象成几个对象,对象有其自身的属性,对象间通过方法发生交互。难点在于如何抽象对象这一步,抽象的好,代码逻辑清晰,复杂度小。抽象的差,逻辑冗余,复杂度高。这一点在于多实操,多实践能打通脑回路中的闭塞模块。

3.死磕BUG的毅力

古人云:“写代码一半的时间都在写BUG,剩下的一半是在修BUG”。笔者深以为然。当伪码逻辑整理通顺后,自信流畅的书写完代码,按下Run键,满心期待着跑通效果,一堆 Error 让你怀疑人生。没有选择,挨个Debug,直至跑通。人生何尝不是如此呢,道理皆知,实操问题频出,不死磕,便不能克服这个难点,咬咬牙,Print error。

学习成果展示

1.随机漫步

结合随机函数形成随机漫步的效果

2.向量

结合向量熟悉平面中位置,速度,加速度的二维属性

3.力

利用物理学基础原理模拟物体在现实世界中的运动

4.波形

结合弧度制,sin,cos,实现波形效果

5.粒子

结合继承和多态,实现粒子效果

6.自动代理

确定目标情况下,感知外界环境,做出判断

7.固定进化

根据固定规律进行迭代进化


8.递归

结合递归,进行规则图形的绘制


9.随机进化

根据优胜劣汰进化算法进行迭代进化

10.神经网络

通过测试集训练算法

展望

人工智能相关的技术不断前进着,作为技术迭代的见证者,还是要利用业余时间多关注相关领域的知识。希望下一次能跟大家分享学习 Android 或 Fullter 的感受。

附件

1.The nature of code 下载地址(提取码:6yqw)

2.Github 笔者代码地址

你可能感兴趣的:(Processing从入门到精通)