上一篇博客做的是静态画,那这篇当然要讲讲动态画。同样地,这次我们也是从思路、技术、创作体验、创作偏好等方面来比较码绘与手绘,讨论异同。
首先,展示一下作品:

码绘

利用P5.JS绘制作品

手绘

利用数位板及ps工具实现的动态图

代码实现过程

Po一下完整代码:

let dots = [];
function setup() {createCanvas(500, 500);
noStroke();
colorMode(HSB, 360, 100, 100);
frameRate(6);//帧数率
}function draw() {background('white');let t = frameCount / 60; //刷新时间//圆点随机数目for(var i = 0; i < random(3); i++) {dots.push(new dot()); }for
(let flake of dots) {flake.update(t); // 更新圆点位置
flake.display(); // 画圆点}//字
text = createP("Hello World");
text.position(120, 330);
text.style("font-weight", "monospace");
text.style("color", "#D0104C");
text.style("font-size", "30pt");
text.style("letter-spacing", "5px");
}
// 圆点随机生成函数
function dot() {// 初始化坐标this.posX = 0;this.posY = random(-50, 0);this.initialangle = random(0, 2 * PI);this.size = random(10, 60);// 圆点半径this.radius = sqrt(random(pow(width / 2, 2)));this.update = function(time) {let w = 0.9; // 角速度let angle = w * time + this.initialangle;this.posX = width / 2 + this.radius * sin(angle);// 不同大小圆点以不同速度落下this.posY += pow(this.size, 0.5);// 删除超出屏幕大小的圆点if (this.posY > height) {let index = dots.indexOf(this);     dots.splice(index, 1);}}; this.display = function() {      var h = random(0, 360);       fill(h,160,160);    ellipse(this.posX, this.posY, this.size); };
}

代码主要参考了p5.js官网中的两个范例,大家可以看一下,范例做的都很nice
https://p5js.org/zh-Hans/examples/simulate-snowflakes.html
https://p5js.org/zh-Hans/examples/color-radial-gradient.html
代码大体由三部分构成:生成随机圆并下落;创建一个colormode,在一定范围内取色彩给圆,色彩变化;文字Hello World。
第一个部分用到了第一个范例中的生成大小,位置随机的圆,每个都以随机略微不同的速度落下。将随机生成的圆都存在dots()数组中。
第二个部分用到了第二个范例中的HSB色系,colorMode(HSB, 360, 100, 100); 定义帧数率,控制变化的快慢:frameRate(6); 随机色彩:var h = random(0, 360); fill(h,160,160);
第三个部分就是字体了,确定字体位置,颜色,字形,大小,字间距等,参考了 https://github.com/processing/p5.js/wiki/Beyond-the-canvas 又百度了一下字形及字间距参数做出修改。

手绘与码绘异同比较

技法方面

同:对图形的认知,色彩感知搭配,对美的认知
异:码绘实现动态图需要循环语句,让它动起来;手绘则需要一帧一帧画出。

创作体验

同:都花费一定时间获得成果
异:码绘只需要编写一些代码,就能实现圆点的随机生成,颜色的规律变化,每秒帧数的调整等,而手绘每一帧都要自己绘制,每个圆点都要挨个画出,很繁琐,码绘的GIF有40多帧,而手绘我只画了9帧,手绘工作量大,而且我画的还不好看,最后一帧还有问题,很难受。

显现效果

同:动态变换
异:码绘帧数多,显现更流畅,每个圆点色彩都会改变;手绘帧数少,看起来不流畅,每个圆点色彩固定。

局限性

码绘对于有有一定规律,且由基本几何组合而成图形有优势,无规律且线条流畅的复杂绘画则难以实现;手绘可以随心所欲展现你想画的人物,景色等,但是对于规模大的规律图形,手绘工作量大且枯燥繁琐,动态图逐帧绘制耗时巨大。

参考资料

https://p5js.org/zh-Hans/examples/simulate-snowflakes.html
https://p5js.org/zh-Hans/examples/color-radial-gradient.html
https://github.com/processing/p5.js/wiki/Beyond-the-canvas

对比码绘与手绘——Motion graph相关推荐

  1. 【动态】码绘VS手绘的对比——有点萌的开关

    [动态]码绘VS手绘的对比--有点萌的开关 背景简介 主题 成果展示 前期分析 制作过程 体会与思考 参考资料 背景简介 上一次简单的通过静态的手绘与码绘对两者进行了一些简单的对比,这一次更加好玩了, ...

  2. 码绘与手绘的对比——动态

    码绘与手绘的对比--动态 版权声明:本文为博主原创文章,未经博主允许不得转载. 图形学最动人的地方就是可以用代码实现图形的动态效果,之前比较了静态效果下的码绘与手绘,传送门:https://blog. ...

  3. 码绘VS手绘(一) 编程与手绘的对比

    前言 本文主要讲解在静态图方面如何分别通过手绘和码绘两种方式来表现,以及它们之间的差异与联系,谨以此博客记录学习过程.博主新手一枚,这是博主第一次写博文,若有不足之处,还请温柔拍打~~(笔芯~~) 手 ...

  4. 码绘与手绘——表达动态

    一.手绘表现动态: 这个题目一开始看来 ,手绘是处于非常劣势的地位的,因为电脑上可以实现动态的过程,就是用动画的原理,每秒绘制60帧,不断进行重绘图形,来达到运动的效果的. 而本身来讲,手绘的图片本质 ...

  5. 码绘VS手绘(二)动态绘图

    码绘VS手绘(二)动态绘图 一.前言 二.实验内容 (一)主题 (二)实验结果 1.码绘 最终效果 程序结构 具体函数解析 2.手绘 三.总结--编程与手绘的比较 1.工具和载体 2.技法 3.理念 ...

  6. 码绘VS手绘|processing“运动”主题创作——如何让一只沙雕鸟起飞

    目录 一.代码逻辑 二.理论对比 三.参考资料 最终作品效果可以看上传在B站的视频:https://www.bilibili.com/video/av36523799 第一次码绘VS手绘指路:http ...

  7. 码绘VS手绘(二) 如何让让静态图“动”起来

    前言 在上一篇码绘VS手绘(一) 编程与手绘的对比中,我们了解了有关码绘与手绘在静态图方面的比较,本文主要讲解如何分别通过手绘和码绘两种方式来使得静态图"动"起来,码绘使用的是pr ...

  8. 用p5.js实现的码绘与手绘的比较(动态)

    用p5.js实现的码绘与手绘的比较(动态) 上篇:用p5.js实现的码绘与手绘的比较(静态)https://blog.csdn.net/wangyouxu24/article/details/8433 ...

  9. 码绘”与手绘比较——静态篇(码绘使用p5.js)

    码绘图 手绘图 先大体说一下码绘图的实现吧 其实实现起来没什么技术难度,就是过程比较繁琐. 背景就是几个不同颜色,不同透明度的四边形和三角形,用quad()和triangle()两个函数搞定,就不贴代 ...

最新文章

  1. hexo-github 博客搭建
  2. linux 内核load addr,linux2.4启动分析(1)---内核启动地址的确定 vmlinux LOAD_ADDR ZRELADDR...
  3. pycharm 取消连按两下shift出现的全局搜索
  4. 深入理解 Flutter 的编译原理与优化
  5. java 日志使用_Java日志正确使用姿势
  6. java开发属于后端吗,值得一读!
  7. 力扣326.3的幂 C/C++
  8. leetcode python3 简单题168. Excel Sheet Column Title
  9. VS2010 发布网站总是连同cs文件一起发布了
  10. 计算机桌面是快捷方式,我的电脑桌面上的图标都变成快捷方式了怎么处理?
  11. java外文书籍下载_Web开发经典技术图书(英文版居多),欢迎下载阅读 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  12. 高薪岗位大数据开发工程师要如何入门?【重磅】
  13. 这是什么意思admin.php,administratior是什么意思
  14. book mac pro怎么重装系统_macbook pro怎么重装mac系统?
  15. 沙盒型源码安全解决方案
  16. Machine learning strategies for systems with invariance properties( 具有不变性系统的机器学习策略 )2016年Julia Ling
  17. 立创EDA安装ibom插件
  18. bgp机房是先进的IDC机房产品
  19. aurora(极光) vpn查看代理ip和端口
  20. Vegas色键的使用技巧

热门文章

  1. 八月阿里云-云上年中钜惠各种型号云服务器配置表汇总!
  2. Linux常见基础指令详解
  3. ERROR: Attempting to operate on hdfs namenode as root
  4. 微盟战略进阶赢得逆势增长,WOS奠定未来生态基础
  5. 【vcpkg】POCO库编译链接总结
  6. android8 评测,平台化成趋势 UC浏览器安卓8.0版首发评测
  7. python matplotlib画三维折线图
  8. linux找不到telnet命令,Linux安装telnet
  9. 基于Python_opencv的车牌识别系统
  10. 齐鲁师范学院计算机科学与技术分数线,2019齐鲁师范学院各专业录取分数线汇总情况公布 - 智优学好网...