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

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

一、编程实现的动态效果

  1. 效果图

    在这个借由p5.js实现的效果里,背景由在一定范围内随机变化的圆组成(这里参考了OpenProcessing上的代码),中间的眼睛可以随着鼠标在固定区域内转动。

  2. 主要代码

//绘制背景
for(var i=0;i<n;i++)
{    var theta = 2.39996*i;    var r = myscale*sqrt(i);    noStroke();    var s = i/float(n);    fill(-40+2.0*s,1-2.0*s, 0.3 + s );    var d = myscale*(4-r/120+ 5*noise(r+t));    ellipse(0.5*width + r*sin(theta),0.5*height + r*cos(theta), d, d);
}

绘制背景时用到了周期性变化和柏林噪声来控制圆的颜色位置大小变化(具体代码可参考https://www.openprocessing.org/sketch/388111)。

//眼睛上会动的线
for(var i=0;i<3;i++){stroke(-20,0.2,0.6+0.1*i);
strokeWeight(3.5-i);
noFill();
bezier(0, height/2, width/3+20, height/2+i*20+120*noise(i+t+2), width/3*2-20, height/2+100+i*20+120*noise(i+t+3), width,height/2);
bezier(0, height/2, width/3+20, height/2-100-i*20-120*noise(i+t), width/3*2, height/2-i*20-120*noise(i+1+t), width,height/2);
}

依旧用noise()来控制随机变化

//眼珠随鼠标转动
function ball(){  noStroke();    var distance=sqrt((mouseX-0.5*width)*(mouseX-0.5*width)+(mouseY-0.5*height)*(mouseY-0.5*height));  var ax,ay;  if (distance<85){ax=mouseX;ay=mouseY;}else{ax=85*(mouseX-0.5*width)/distance+0.5*width;ay=85*(mouseY-0.5*height)/distance+0.5*height;}bx=(ax-0.5*width)/85*40+0.5*width;by=(ay-0.5*height)/85*40+0.5*height;fill(-20,0.35,0.35);ellipse(bx,by, 120, 120);fill(-30,0.05,0.8);  ellipse(ax,ay, 30, 30);}

实现的过程没有什么复杂的算法,很容易理解。

二、手绘实现的效果

三、手绘与码绘的比较

  1. 呈现效果
    用代码生成的动态效果,可以根据使用者的操作来进行实时交互;而手绘的图几乎不能进行交互,形成动态也比代码麻烦的多。
  2. 工具
    码绘所用的工具多是编辑器,通过键盘输入的方式进行绘制;手绘的工具更复杂和多样化,狭义的包括纸、笔、颜料等,广义的则还包括数位板等电子设备。
  3. 绘制过程
    在进行手绘的时候很少有人会确切的计算坐标,感觉上合适就可以了,动态过程较难呈现。码绘则要求非常明确的坐标指定,且从编程角度来说,实现图片随时间变化的效果是很容易的。
  4. 局限性
    码绘不能实现很复杂的图案的动态化,过于复杂毫无数学规律的动图的实现只能靠手工绘制;手绘的过程较麻烦,难保证动态前后一些规律组件的一致性,且交互性差。
  5. 应用
    综上所述,码绘成果适合应用在有数学规律可循,图案要求较规整,可交互的地方;手绘适合应用在随意性大,图案要求较复杂的地方。

四、参考资料

1.《用代码画画》:
0.1 用代码画画——搞艺术的学编程有啥用?
https://blog.csdn.net/magicbrushlv/article/details/77922119
1.1 开始第一幅“码绘”——以编程作画的基本方法
https://blog.csdn.net/magicbrushlv/article/details/77840565
2. 以编程的思想来理解绘画—— (一)用”一笔画“表现“过程美”
https://blog.csdn.net/magicbrushlv/article/details/82634189
3. OpenProcessing:
https://www.openprocessing.org/https://www.openprocessing.org/

用p5.js实现的码绘与手绘的比较(动态)相关推荐

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

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

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

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

  3. 对比码绘与手绘——Motion graph

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

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

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

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

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

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

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

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

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

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

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

  9. 码绘与手绘的比较【动态篇】

    圆的面积公式 我们都知道圆的面积公式是π*r^2,但这个公式怎么得来的呢?我们用一种直观的方式来看看这个公式的来历: 接下来我们尝试用码绘和手绘来实现一下第二张图片的动态了. 手绘 额..可以看出手绘 ...

最新文章

  1. APP投资 历史 十万到 十亿元的项目
  2. mysql 小数点后几位不足补0初始化
  3. go 使用sarama写入kafka数据时间戳问题
  4. 力扣--让字符串成为回文串的最少插入次数
  5. js错误: XXX变量 is not a function
  6. ELK日志分析系统部署
  7. dw实时视图与网页不一样_美团点评 Flink 实时数仓应用经验分享
  8. 【数据库开发】MySQL修改root密码
  9. 计算机一级excel建立数据透视表,excel中插入数据透视表的方法
  10. 不同浏览器的url长度限制
  11. cad打印样式ctb丢失,CAD打印样式表如何设置?CTB和STB有何区别?
  12. 电路 常见的数据线接口
  13. 洛克人java下载_洛克人5-布鲁斯的阴谋
  14. oracle中双引号代表什么意思,Oracle中的双引号与单引号
  15. 乐博Android客户端(新浪微博)1.01发布,欢迎各位童鞋试用
  16. 测试有没有说梦话的软件,抖音上记录梦话的软件是什么 记录梦话的软件介绍...
  17. 城市园林类毕业论文文献包含哪些?
  18. 谁说每个开发者都应该拥有一个属于自己的服务器?
  19. 双馈风力发电系统 ACDCAC变流器双馈风力发电机仿真模型
  20. 如何搭建一个自己的网站-优化篇

热门文章

  1. Html飞机大战(九): 使徒来袭 (设计敌机)
  2. inline-block什么意思中文_block,inline和inline-block概念和区别
  3. 结构数组小白鼠带帽子
  4. LeetCode 495. 提莫攻击 解答
  5. C++中#(一个#号)和##(两个#号)的用法和作用
  6. 大佬们高考成绩爆光,马云曾考1分、李彦宏东哥是学霸...
  7. APP STORE经验分享
  8. 华为硬件工程师社招机考题库_2016华为硬件机试题库
  9. 两个程序的爱情故事(续)
  10. 视频转换器 Wondershare Video Converter Ultimate v11.5.1 中文便携版