p5.js临摹动态图形的方法


Posted in Javascript onOctober 23, 2019

本文实例为大家分享了p5.js临摹动态图形的具体代码,供大家参考,具体内容如下

一、描述所临摹图像的规律

p5.js临摹动态图形的方法

1、图像由多个闪光圆点和圆点之间的连线组成
2、圆点的运动轨迹是随机的
3、圆点之间靠近时会产生连线,并且相互靠近的圆点会颜色加深

二、代码实现

圆点之间产生连线,随机生成线条和运动轨迹:

//随机生成s.n条线位置信息
for (var t = [], p = 0; s.n > p; p++) {
  var h = random() * r, //随机位置
   g = random() * n,
   q = 2 * random() - 1, //随机运动方向
   d = 2 * random() - 1;
  t.push({
   x: h,
   y: g,
   xa: q,
   ya: d,
   max: 6000 //圆点靠近产生线条的距离
  })
 }

绘制闪光圆点:

//由三个透明度不同的圆组成
 context.beginPath();
 context.arc(r.x,r.y,1.7,0*Math.PI,2*Math.PI);
 context.fillStyle="#FF1493";
 context.fill();
   
 context.beginPath();
 context.arc(r.x,r.y,6,0*Math.PI,2*Math.PI);
 context.fillStyle='rgba(255,20,147,0.3)';
 context.fill();
   
 context.beginPath();
 context.arc(r.x,r.y,10,0*Math.PI,2*Math.PI);
 context.fillStyle='rgba(255,20,147,0.1)';
 context.fill();

效果图

p5.js临摹动态图形的方法

因为对于临摹动态图像仍有很多困惑的地方,无法实现多个圆点相互靠近颜色加深,非常遗憾最终不能临摹出完全一样的图像。

三、拓展

增加交互性,使得线条能够附着到鼠标上,跟随鼠标移动。
鼠标靠近圆点时,圆点会加速运动,

//存储鼠标位置,离开的时候,释放当前位置信息
window.onmousemove = function(i) {
  i = i || window.event, f.x = i.clientX, f.y = i.clientY
 },
window.onmouseout = function() {
  f.x = null, f.y = null
 };

for (v = 0; v < w.length; v++) {//从下一个点开始
    x = w[v];
    if (i !== x && null !== x.x && null !== x.y) {
     B = i.x - x.x, z = i.y - x.y, y = B * B + z * z;
     //与鼠标靠近到一定距离的时候圆点加速(x.max/2<y<x.max)
     y < x.max && (x == current_point && y >= x.max / 2 
      && (i.x -= 0.03 * B, i.y -= 0.03 * z), 
     ...
     )}

结果图

p5.js临摹动态图形的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
高亮显示web页表格行的javascript代码
Nov 19 Javascript
一样的table?不一样的table(可编辑状态table)
Sep 19 Javascript
jquery 表格排序、实时搜索表格内容(附图)
May 19 Javascript
JavaScript获取某年某月的最后一天附截图
Jun 23 Javascript
一个支付页面DEMO附截图
Jul 22 Javascript
AngularJS入门教程之更多模板详解
Aug 19 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
Jun 11 Javascript
浅谈JS函数节流防抖
Oct 18 Javascript
浅析JS中NEW的实现原理及重写
Feb 20 Javascript
vue实现下拉菜单树
Oct 22 Javascript
通过滑动翻页效果实现和移动端click事件问题
Jan 26 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
Oct 23 #Javascript
p5.js实现动态图形临摹
Oct 23 #Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
Oct 23 #Javascript
微信小程序 生成携带参数的二维码
Oct 23 #Javascript
使用p5.js临摹动态图形
Oct 23 #Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 23 #Javascript
p5.js临摹动态图形实现方法详解
Oct 23 #Javascript
You might like
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
Vuex实现数据增加和删除功能
2019/11/11 Javascript
python读取oracle函数返回值
2016/07/18 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
python3中eval函数用法使用简介
2019/08/02 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
经理职责范文
2013/11/08 职场文书
电台编导求职信
2014/05/06 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
开平碉楼导游词
2015/02/06 职场文书
销售员自我评价
2015/03/11 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
python 远程执行命令的详细代码
2022/02/15 Python
利用Java连接Hadoop进行编程
2022/06/28 Java/Android