コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }