ts - 1); // 0 to 1
                const x = this.xOffset + progress * (width + this.thickness * 10); // 彩带绘制范围比屏幕宽
                const y = this.baseY + Math.sin(x * this.frequency + this.phase + time * 0.01) * this.amplitude +
                          Math.cos(x * this.frequency * 0.5 + this.phase * 0.7 + time * 0.005) * this.amplitude * 0.5;
                this.points.push({ x, y });
            }
        }

        draw() {
            if (this.points.length < 2) return;

        