作业一 · 创意代码的基本原理
运动轨迹 Motion Trail
一颗随机出发的小球,在深蓝画布上留下会呼吸的轨迹。
用半透明背景反复覆盖代替清屏,让每一帧的残影自然叠成轨迹,而不是自己存一堆坐标。小球碰到边界就反向,颜色由鼠标横向位置映射到冷色区间,橙色方块跟着指针走——把「看不见的操作」变成看得见的笔触。
查看核心代码 sketch.js
let x, y, speedX, speedY;
function setup() {
createCanvas(380, 570);
noStroke();
x = random(width);
y = random(height);
speedX = random(-2, 2);
speedY = random(-2, 2);
}
function draw() {
// 半透明背景,保留运动轨迹
background(20, 20, 40, 18);
// 碰到画布边缘反弹
if (x < 0 || x > width) speedX = -speedX;
if (y < 0 || y > height) speedY = -speedY;
x += speedX;
y += speedY;
// 鼠标横向位置控制颜色
let redVal = map(mouseX, 0, width, 30, 220);
fill(redVal, 100, 180);
// 随机尺寸
let size = random(15, 45);
ellipse(x, y, size, size);
// 鼠标位置绘制跟随方块
fill(255, 180, 80, 120);
rectMode(CENTER);
rect(mouseX, mouseY, 30, 30);
}