UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

38 lines 1.17 kB
import { useRotationScale } from "../../hooks/useScale.js"; import { useDrawingArea } from "../../hooks/useDrawingArea.js"; import { useRadiusAxes } from "../../hooks/index.js"; import { useChartContext } from "../../context/ChartProvider/useChartContext.js"; export function useRadarGridData() { const { instance } = useChartContext(); const rotationScale = useRotationScale(); const { radiusAxis } = useRadiusAxes(); const drawingArea = useDrawingArea(); const cx = drawingArea.left + drawingArea.width / 2; const cy = drawingArea.top + drawingArea.height / 2; if (!rotationScale || rotationScale.domain().length === 0) { return null; } const metrics = rotationScale.domain(); const angles = metrics.map(key => rotationScale(key)); return { center: { x: cx, y: cy }, corners: metrics.map((metric, dataIndex) => { const radiusScale = radiusAxis[metric].scale; const r = radiusScale.range()[1]; const angle = angles[dataIndex]; const [x, y] = instance.polar2svg(r, angle); return { x, y }; }), radius: radiusAxis[metrics[0]].scale.range()[1] }; }