主题
编写一个“绘画系统”,提供一系列绘画材料(例如画笔/颜料/滤镜)给用户操作,以创作出动态/交互的绘画作品。这个绘画系统是对“绘画”的概念的扩展,但仍然体现出与传统绘画系统的相似性。
简单介绍
改作业参考了网上的代码框架,自己改动添加了一些新功能和自己的想法,参考链接https://blog.csdn.net/qq_27534999/article/details/79427721。
效果如下图,都是动态,然而电脑过于卡顿,只能发静态图了
主要的功能有
- 自定义画笔颜色,也可以选取预置的颜色
快捷键依次为键盘1-0和-,=,黑色是自定义颜色,灰色哪个是背景颜色,快捷键为~,也可选为画笔颜色 - 自定义背景颜色和大小
- 多种画笔,快捷键Q可切换不同画笔,T为画树
- 空格键或者点击下方按钮即可切换动态和静态,可是运动的图形停下来
- W键或者点击下方按钮会出现一个时间笔刷,可使刷到的部分静止或者运动
- E键或者下方按钮是橡皮擦
- C键或者下方按钮为清屏
- S键或者下方按钮是保存图片
如果时间足够,还可以继续添加N多种笔刷和动态效果,可惜电脑配置带不动(也可能是我优化做的不行)。
本人编程基础比较差,然而通过这次作业,突然发现读懂代码之后,提炼出框架,然后就可以疯狂往里面塞东西了,算是一大收获吧。
然后问题出现在运行时特别卡顿,我严重怀疑是我的代码有问题,然而还不知道怎么改,再接再厉。
扩展绘画概念的理念
- 技法
无论常规绘画还是编程或者其他形式的绘画,我觉得都应该需要一定的技法,美的东西都是有规律的 - 工具
绘画的工具不仅仅局限于纸笔,电脑和数位板,剪纸,沙画等等,会有很多形式,而我们主要接触的就是用代码来绘画,主要的工具就是电脑了 - 创作体验
传统绘画(手绘)算是基础吧,一般情况下手绘基础好体验也会更好 - 呈现效果
各有优点,码绘可以呈现很多手绘不能实现的效果,比如动态,比如数学公式生成的美丽图形 - 载体
绘画的载体可以是纸,沙地,墙,布,电脑,等等 - 局限性
限制我的是手绘能力和编程能力
参考文献:
https://blog.csdn.net/qq_27534999/article/details/79427721。
http://p5js.org/zh-Hans/reference/
https://blog.csdn.net/qq_40346122/article/details/83832420