{"version":3,"file":"grid.cjs","sources":["../../../../../src/elements/oscilloscope/renderers/grid.js"],"sourcesContent":["import paper from '@chnak/paper';\n\n/**\n * 网格样式默认配置\n */\nexport const defaultConfig = {\n  gridRows: 8, // 网格行数\n  gridCols: 16, // 网格列数\n};\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 renderGrid(element, data, x, y, width, height, time, config = {}) {\n  // 合并默认配置\n  const cfg = { ...defaultConfig, ...config };\n  \n  const cellWidth = width / cfg.gridCols;\n  const cellHeight = height / cfg.gridRows;\n  const step = Math.max(1, Math.floor(data.length / (cfg.gridRows * cfg.gridCols)));\n  \n  let dataIndex = 0;\n  for (let row = 0; row < cfg.gridRows; row++) {\n    for (let col = 0; col < cfg.gridCols; col++) {\n      if (dataIndex >= data.length) break;\n      \n      const amplitude = Math.abs(data[dataIndex]) * element.sensitivity;\n      const cellX = x + col * cellWidth;\n      const cellY = y + row * cellHeight;\n      \n      // 根据振幅调整单元格大小和颜色\n      const scale = 0.5 + amplitude * 0.5;\n      const cellRect = new paper.Path.Rectangle({\n        rectangle: new paper.Rectangle(\n          cellX + cellWidth * (1 - scale) / 2,\n          cellY + cellHeight * (1 - scale) / 2,\n          cellWidth * scale,\n          cellHeight * scale\n        ),\n        fillColor: element.waveColor,\n      });\n      cellRect.fillColor.alpha = 0.3 + amplitude * 0.7;\n      \n      dataIndex += step;\n    }\n  }\n}\n\nrenderGrid.style = 'grid';\n\n"],"names":[],"mappings":";;;;;;AAEA;AACA;AACA;AACY,MAAC,aAAa,GAAG;AAC7B,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE,QAAQ,EAAE,EAAE;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE;AAC1F;AACA,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE;AAC7C;AACA,EAAE,MAAM,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC,QAAQ;AACxC,EAAE,MAAM,UAAU,GAAG,MAAM,GAAG,GAAG,CAAC,QAAQ;AAC1C,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnF;AACA,EAAE,IAAI,SAAS,GAAG,CAAC;AACnB,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;AAC/C,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;AACjD,MAAM,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;AACpC;AACA,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW;AACvE,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,SAAS;AACvC,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,UAAU;AACxC;AACA;AACA,MAAM,MAAM,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG;AACzC,MAAM,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAChD,QAAQ,SAAS,EAAE,IAAI,KAAK,CAAC,SAAS;AACtC,UAAU,KAAK,GAAG,SAAS,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;AAC7C,UAAU,KAAK,GAAG,UAAU,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;AAC9C,UAAU,SAAS,GAAG,KAAK;AAC3B,UAAU,UAAU,GAAG;AACvB,SAAS;AACT,QAAQ,SAAS,EAAE,OAAO,CAAC,SAAS;AACpC,OAAO,CAAC;AACR,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG;AACtD;AACA,MAAM,SAAS,IAAI,IAAI;AACvB,IAAI;AACJ,EAAE;AACF;;AAEA,UAAU,CAAC,KAAK,GAAG,MAAM;;;;;"}