 0, cw, ch);
                orbitCtx.strokeStyle = 'rgba(255,255,255,0.3)';
                orbitCtx.lineWidth = 1;
                for (let i = 1; i < radii.length; i++) {
                    orbitCtx.beginPath();
                    orbitCtx.arc(cx, cy, radii[i], 0, 2 * Math.PI);
                    orbitCtx.stroke();
                }
            }
            window.addEventListener('resize', resize);
            resize();

            // 3. Web Worker 负责位置计算
            const workerCode = 