| 1234567891011121314151617181920212223242526272829303132333435363738394041 | using UnityEngine;namespace XCharts.Runtime{    internal static class PolarHelper    {        public static void UpdatePolarCenter(PolarCoord polar, Vector3 chartPosition, float chartWidth, float chartHeight)        {            if (polar.center.Length < 2) return;            var centerX = polar.center[0] <= 1 ? chartWidth * polar.center[0] : polar.center[0];            var centerY = polar.center[1] <= 1 ? chartHeight * polar.center[1] : polar.center[1];            var minWidth = Mathf.Min(chartWidth, chartHeight);            polar.context.center = chartPosition + new Vector3(centerX, centerY);            polar.context.insideRadius = polar.context.outsideRadius = 0;            if (polar.radius.Length >= 2)            {                polar.context.insideRadius = ChartHelper.GetActualValue(polar.radius[0], minWidth, 1);                polar.context.outsideRadius = ChartHelper.GetActualValue(polar.radius[1], minWidth, 1);            }            else if (polar.radius.Length >= 1)            {                polar.context.outsideRadius = ChartHelper.GetActualValue(polar.radius[0], minWidth, 1);            }            polar.context.radius = polar.context.outsideRadius - polar.context.insideRadius;        }        public static Vector3 UpdatePolarAngleAndPos(PolarCoord polar, AngleAxis angleAxis, RadiusAxis radiusAxis, SerieData serieData)        {            var value = serieData.GetData(0);            var angle = angleAxis.GetValueAngle(serieData.GetData(1));            var radius = polar.context.insideRadius + radiusAxis.GetValueLength(value, polar.context.radius);            angle = (angle + 360) % 360;            serieData.context.angle = angle;            serieData.context.position = ChartHelper.GetPos(polar.context.center, radius, angle, true);            return serieData.context.position;        }    }}
 |