Example #1
0
        public double ConvertToAngle(PolarChartAreaModel chartArea)
        {
            double angle = this.RangePosition * 360;

            angle = chartArea.NormalizeAngle(angle);

            return(angle);
        }
Example #2
0
        internal override RadRect ArrangeOverride(RadRect rect)
        {
            this.radialLines.Clear();
            this.polarLines.Clear();

            RadPoint            center    = RadPoint.Round(rect.Center);
            double              radius    = Math.Max(0, rect.Width / 2);
            PolarChartAreaModel polarArea = this.GetChartArea <PolarChartAreaModel>();
            PolarAxisModel      polarAxis = polarArea.PolarAxis;

            foreach (AxisTickModel tick in polarAxis.MajorTicks)
            {
                double tickRadius = (int)(((double)tick.normalizedValue * radius) + 0.5);
                this.radialLines.Add(new RadCircle()
                {
                    Center = center, Radius = tickRadius
                });
            }

            AxisModel angleAxis = polarArea.AngleAxis;

            foreach (AxisTickModel tick in angleAxis.MajorTicks)
            {
                // do not add a line for the last tick
                if (RadMath.IsOne(angleAxis.IsInverse ? 1 - tick.normalizedValue : tick.normalizedValue))
                {
                    continue;
                }

                double angle = polarArea.NormalizeAngle((double)tick.value);
                this.polarLines.Add(new RadPolarVector()
                {
                    Center = center, Point = tick.layoutSlot.Location, Angle = angle
                });
            }

            return(rect);
        }