{"version":3,"file":"circle.cjs","sources":["../../../../../src/elements/oscilloscope/renderers/circle.js"],"sourcesContent":["import paper from '@chnak/paper';\n\n/**\n * 圆形样式默认配置\n */\nexport const defaultConfig = {};\n\n/**\n * 圆形波形渲染器\n * @param {Object} element - 元素实例\n * @param {Array} data - 波形数据\n * @param {number} x - X坐标\n * @param {number} y - Y坐标\n * @param {number} width - 宽度\n * @param {number} height - 高度\n * @param {number} time - 当前时间\n * @param {Object} config - 配置对象（合并了默认配置和用户配置）\n */\nexport default function renderCircle(element, data, x, y, width, height, time, config = {}) {\n  // 合并默认配置\n  const cfg = { ...defaultConfig, ...config };\n  const centerX = x + width / 2;\n  const centerY = y + height / 2;\n  const radius = Math.min(width, height) / 2 - 20;\n  const pointCount = Math.min(data.length, 360);\n\n  const path = new paper.Path();\n  path.strokeColor = element.waveColor;\n  path.strokeWidth = element.lineWidth;\n  path.closed = true;\n\n  for (let i = 0; i < pointCount; i++) {\n    const angle = (i / pointCount) * Math.PI * 2;\n    const dataIndex = Math.floor((i / pointCount) * data.length);\n    const amplitude = data[dataIndex] * radius * element.sensitivity;\n    const r = radius + amplitude;\n\n    const px = centerX + Math.cos(angle) * r;\n    const py = centerY + Math.sin(angle) * r;\n\n    if (i === 0) {\n      path.moveTo(new paper.Point(px, py));\n    } else {\n      path.lineTo(new paper.Point(px, py));\n    }\n  }\n\n  path.fillColor = element.waveColor;\n  path.fillColor.alpha = 0.2;\n}\n\nrenderCircle.style = 'circle';\n\n"],"names":[],"mappings":";;;;;;AAEA;AACA;AACA;AACY,MAAC,aAAa,GAAG;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE;AAC5F;AACA,GAAc,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM;AAC3C,EAAE,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC;AAC/B,EAAE,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC;AAChC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;AACjD,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;;AAE/C,EAAE,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;AAC/B,EAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS;AACtC,EAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS;AACtC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI;;AAEpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACvC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC;AAChD,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC;AAChE,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW;AACpE,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS;;AAEhC,IAAI,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C,IAAI,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;;AAE5C,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,IAAI;AACJ,EAAE;;AAEF,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AACpC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG;AAC5B;;AAEA,YAAY,CAAC,KAAK,GAAG,QAAQ;;;;;"}