p5.js实现故宫橘猫赏秋动画详解

1星 5 下载量 79 浏览量 更新于2024-09-02 收藏 175KB PDF 举报
"这篇资源是关于使用p5.js编程库创建一个名为‘故宫橘猫赏秋图’的动画。作者通过代码将静态插画转化为动态画面,展示了在互动媒体作业中的应用。文章提供了代码示例,包括变量定义、场景元素(如天空、墙、树)的绘制以及橘猫的动画效果。" 在p5.js中,这个动画的实现主要涉及以下几个知识点: 1. **变量定义**:在代码开头,定义了各种变量来存储尺寸、坐标和动画参数,例如`Width`和`Height`分别表示画布的宽度和高度,`pixel`用于像素控制,`skyHeight`和`wall_Height`代表天际线和墙壁的高度,`cat_scale`控制猫的大小,`easing`用于平滑动画过渡。 2. **函数设置**:`setup()`函数是p5.js中的初始化函数,用于创建画布。`draw()`函数则负责每一帧的绘制,相当于动画的主循环,`frameRate(5)`设定每秒显示5帧,控制动画速度。 3. **图形绘制**:使用`drawwall()`和`drawsky()`函数分别绘制墙和天空。`rect()`函数用于绘制矩形,`push()`和`pop()`用于保存和恢复当前的绘图环境,如坐标系和颜色模式,便于进行相对定位。 4. **坐标轴**:`Y_AXIS`和`X_AXIS`常量用于方便地引用坐标轴方向。在p5.js中,坐标原点默认位于画布左上角,X轴向右增长,Y轴向下增长。 5. **随机数与动画**:虽然在提供的内容中没有直接使用`random()`函数,但在实际动画制作中,可能会用到它来生成随机位置或颜色,以增加动态效果。`if`语句用于控制橘猫的位置变化,`center_x`逐渐减小,实现猫向左移动的效果。 6. **对象绘制**:`drawcat()`函数专门用于绘制橘猫,包含猫的轮廓、肚子、耳朵等部分。`translate()`函数改变当前坐标系的原点,使绘制位置相对偏移。 7. **颜色填充**:`fill()`函数用于设置填充颜色,如树的颜色和阴影,而`stroke()`则设置线条颜色。`noStroke()`禁用描边,只保留填充。 8. **动画平滑**:`easing`变量用于调整动画的平滑度,通常是通过某种缓动函数(如线性、指数或贝塞尔曲线)来实现平滑过渡。 9. **互动性**:虽然没有具体提及,但p5.js通常支持用户交互,可以添加鼠标点击或移动事件来改变动画状态,例如控制猫的动作或动画速度。 10. **代码示例**:作者提供的完整代码是学习p5.js动画制作的一个实例,通过阅读和理解代码,读者可以了解到如何将静态图像转换为动态效果,并学习到如何在p5.js环境中创建自己的动画项目。 这个项目展示了p5.js在创作互动媒体作品时的灵活性和强大功能,同时也提供了一个动手实践的教程,适合初学者学习动画编程。