private void DrawAngleAxis(VertexHelper vh) { var radius = m_Polar.runtimeRadius; var cenPos = m_Polar.runtimeCenterPos; var total = 360; var size = AxisHelper.GetScaleNumber(m_AngleAxis, total, null); var currAngle = m_AngleAxis.runtimeStartAngle; var tickWidth = AxisHelper.GetTickWidth(m_AngleAxis); for (int i = 0; i < size; i++) { var scaleWidth = AxisHelper.GetScaleWidth(m_AngleAxis, total, i); var pos = ChartHelper.GetPos(cenPos, radius, currAngle, true); if (m_AngleAxis.show && m_AngleAxis.splitLine.show) { var splitLineColor = m_AngleAxis.splitLine.GetColor(m_ThemeInfo); ChartDrawer.DrawLine(vh, cenPos, pos, m_AngleAxis.splitLine.lineStyle.width, splitLineColor); } if (m_AngleAxis.show && m_AngleAxis.axisTick.show) { var tickPos = ChartHelper.GetPos(cenPos, radius + m_AngleAxis.axisTick.length, currAngle, true); ChartDrawer.DrawLine(vh, pos, tickPos, tickWidth, m_ThemeInfo.axisLineColor); } currAngle += scaleWidth; } if (m_AngleAxis.show && m_AngleAxis.axisLine.show) { var outsideRaidus = radius + m_AngleAxis.axisLine.width * 2; ChartDrawer.DrawDoughnut(vh, cenPos, radius, outsideRaidus, m_ThemeInfo.axisLineColor, Color.clear); } }
private void DrawRadiusAxis(VertexHelper vh) { var startAngle = m_AngleAxis.runtimeStartAngle; var radius = m_Polar.runtimeRadius; var cenPos = m_Polar.runtimeCenterPos; var size = AxisHelper.GetScaleNumber(m_RadiusAxis, radius, null); var totalWidth = 0f; var dire = ChartHelper.GetDire(startAngle, true).normalized; var tickVetor = ChartHelper.GetVertialDire(dire) * m_RadiusAxis.axisTick.length; var tickWidth = AxisHelper.GetTickWidth(m_RadiusAxis); for (int i = 0; i < size; i++) { var scaleWidth = AxisHelper.GetScaleWidth(m_RadiusAxis, radius, i); var pos = ChartHelper.GetPos(cenPos, totalWidth, startAngle, true); if (m_RadiusAxis.show && m_RadiusAxis.splitLine.show) { var outsideRaidus = totalWidth + m_RadiusAxis.splitLine.lineStyle.width * 2; var splitLineColor = m_RadiusAxis.splitLine.GetColor(m_ThemeInfo); ChartDrawer.DrawDoughnut(vh, cenPos, totalWidth, outsideRaidus, splitLineColor, Color.clear); } if (m_RadiusAxis.show && m_RadiusAxis.axisTick.show) { ChartDrawer.DrawLine(vh, pos, pos + tickVetor, tickWidth, m_ThemeInfo.axisLineColor); } totalWidth += scaleWidth; } if (m_RadiusAxis.show && m_RadiusAxis.axisLine.show) { var lineStartPos = m_Polar.runtimeCenterPos - dire * m_RadiusAxis.axisTick.width; var lineEndPos = m_Polar.runtimeCenterPos + dire * (radius + m_RadiusAxis.axisTick.width); ChartDrawer.DrawLine(vh, lineStartPos, lineEndPos, m_RadiusAxis.axisLine.width, m_ThemeInfo.axisLineColor); } }