讲解👇
这段代码来自于一个使用 p5.js 库创建的动画程序,主要涉及到一个自定义的 SuperSquare 类,用于绘制和移动多边形方块。以下是对这段代码的分析:
1. show 方法
show 方法负责绘制方块及其动态效果。主要流程如下:
使用 beginShape(QUADS) 开始绘制方块的多个面。
通过 vertex 函数定义每个顶点的位置,从而形成四边形。
根据不同的移动方向(xpm 和 ypm)来变化方块的填充颜色,使得方块呈现出不同的动态效果。
在每次绘制方块时,都会根据方块的当前位置 (currentX, currentY) 和原始位置 (originX, originY) 来确定顶点的位置。
2. move 方法
move 方法控制方块的运动。具体流程如下:
如果 time 在一段时间内(0 到 time1),它会根据线性插值(lerp)逐渐从起始位置移动到目标位置。
如果 time 在另一个时间段内(time2 到 time3),它会反向运动回起始位置。
当 time 超过 time3 时,随机产生新的目标位置并重置时间。
3. 动画和运动
方块的初始状态由随机生成的横向和纵向速度(xpm, ypm)与长度(len)决定。方块将在原位置周围进行周期性的运动。
动画效果使用了缓和函数 easeInOutQuint,使得运动更加平滑自然。
4. 颜色和外观
使用 fill 函数设置颜色,方块的颜色基于 colors 数组随机选取。同时使用透明度来增加层次感,使方块看起来更有立体感。
总结
这段代码实现了一种动态效果,通过 SuperSquare 类创建一系列具有动态移动和独特颜色效果的方块,利用 p5.js 库的绘图功能来增强视觉效果,展示了流畅的动画表现。
需要完整代码的朋友请扫码文末微信
我们的工作是探索编程和数学在艺术和设计中一切可能性,形式不限,艺术创作,跨界合作,展览展示,品牌活动等等。位于大洋彼岸的洛杉矶,我们的使命是建设和维护全球华人创意编程和算法艺术社群,形式有开展线上教学,举办社群活动,策划举办艺术展览,挖掘发现本地社群里值得被传播的人和事通过自媒体进行传播。
课程和业务介绍请扫码查看👇
我们建了一个读者群
想进群和其他读者进行精神交流朋友
加联系微信(推送末尾)
联 系 我 们
探索数学与编程在设计与艺术中一切之可能
用运算和美学让你变更酷
主营业务
科学艺术咨询 | 公共艺术 | 未来舞台美术 | 大数据可视化 | 设计人才猎头 | 品牌Event | 教育