1. Canvas 波形绘制
波形通过 CanvasRenderingContext2D 绘制。
用 requestAnimationFrame 驱动重绘,并按 window.devicePixelRatio 调整画布像素尺寸。
实际帧率与开销取决于设备、画布尺寸和浏览器。
一个用 Canvas 和 SVG 绘制的示波器与小机器人。 可以切换模拟波形,调整时基、增益和噪声,也可以点击机器人查看预设对话。 波形由函数生成,频率和电压是示例参数,不是设备采集值。
选择波形后,可调整时基、增益和噪声,查看形状与说明。
用 sin(θ) 生成的正弦波,用来观察周期、幅度与噪声变化。
f(θ) = sin(θ)
组件使用浏览器的 Canvas、SVG 和动画 API,没有引入图表库。
波形通过 CanvasRenderingContext2D 绘制。
用 requestAnimationFrame 驱动重绘,并按 window.devicePixelRatio 调整画布像素尺寸。
实际帧率与开销取决于设备、画布尺寸和浏览器。
机器人的天线与眼球用弹簧阻尼方程跟随光标:
a = (-k · Δx - c · v) / m 逐帧更新位置。
光标移动时会有轻微过冲,停止后逐渐回到稳定位置。
波形由相位变量 θ 对应的函数逐帧生成。
方波通过有限级奇次谐波傅里叶级数合成,展示截断级数带来的边沿过冲;
马鞍波叠加 1/6 三次谐波;UART、I2C 和 CAN 用预设位序列示意电平变化。
使用 IntersectionObserver 监听顶栏舞台视口相交状态。
当原位置滚出视口时,小机器人切换为右下角悬浮卡片,
卡片上可以点击返回页顶。
样式放在 base.css,交互逻辑放入 robot-rainbow.js,页面通过 Liquid include 引入。
{% include theme-spectrum.html %}