protected override RadRect ArrangeCore(RadRect rect) { double radius = rect.Width / 2; RadPoint center = rect.Center; AxisPlotInfo anglePlot = this.plotInfo; double angle = 0d; NumericalAxisPlotInfo numericalAnglePlot = anglePlot as NumericalAxisPlotInfo; if (numericalAnglePlot != null) { angle = numericalAnglePlot.ConvertToAngle(); } else { CategoricalAxisPlotInfo categoricalAnglePlot = anglePlot as CategoricalAxisPlotInfo; if (categoricalAnglePlot != null) { angle = categoricalAnglePlot.ConvertToAngle(this.GetChartArea <PolarChartAreaModel>()); } } RadPoint arcPoint = RadMath.GetArcPoint(angle, center, radius); this.radialLine = new RadPolarVector() { Point = arcPoint, Angle = angle, Center = center }; return(new RadRect(center, arcPoint)); }
internal RadPoint ConvertDataToPoint(Tuple <object, object> data, AxisModel firstAxis, AxisModel secondAxis) { RadPoint coordinates = new RadPoint(double.NaN, double.NaN); if (this.view != null) { RadRect plotArea = this.plotArea.layoutSlot; RadRect plotAreaVirtualSize = new RadRect(plotArea.X, plotArea.Y, plotArea.Width * this.view.ZoomWidth, plotArea.Height * this.view.ZoomHeight); if (firstAxis != null && this.FirstAxes.Contains(firstAxis) && firstAxis.isUpdated) { AxisPlotInfo plotInfo = firstAxis.CreatePlotInfo(data.Item1); if (plotInfo != null) { coordinates.X = plotInfo.CenterX(plotAreaVirtualSize); } } if (secondAxis != null && this.SecondAxes.Contains(secondAxis) && secondAxis.isUpdated) { AxisPlotInfo plotInfo = secondAxis.CreatePlotInfo(data.Item2); if (plotInfo != null) { coordinates.Y = plotInfo.CenterY(plotAreaVirtualSize); } } } return(coordinates); }
protected override RadRect ArrangeCore(RadRect rect) { double radius = rect.Width / 2; RadPoint center = rect.Center; NumericalAxisPlotInfo polarPlot = this.firstPlotInfo as NumericalAxisPlotInfo; double pointRadius = polarPlot.NormalizedValue * radius; AxisPlotInfo anglePlot = this.secondPlotInfo; this.angle = 0d; NumericalAxisPlotInfo numericalAnglePlot = anglePlot as NumericalAxisPlotInfo; if (numericalAnglePlot != null) { this.angle = numericalAnglePlot.ConvertToAngle(); } else { CategoricalAxisPlotInfo categoricalAnglePlot = anglePlot as CategoricalAxisPlotInfo; if (categoricalAnglePlot != null) { this.angle = categoricalAnglePlot.ConvertToAngle(this.GetChartArea <PolarChartAreaModel>()); } } RadPoint arcPosition = RadMath.GetArcPoint(this.angle, center, pointRadius); RadSize desiredSize = this.Measure(); return(new RadRect(arcPosition.X, arcPosition.Y, desiredSize.Width, desiredSize.Height)); }
protected override RadRect ArrangeCore(RadRect rect) { this.radius = rect.Width / 2; RadPoint center = rect.Center; AxisPlotInfo anglePlot1 = this.firstPlotInfo; double angle1 = 0d; NumericalAxisPlotInfo numericalAnglePlot1 = anglePlot1 as NumericalAxisPlotInfo; if (numericalAnglePlot1 != null) { angle1 = numericalAnglePlot1.ConvertToAngle(); } else { CategoricalAxisPlotInfo categoricalAnglePlot1 = anglePlot1 as CategoricalAxisPlotInfo; if (categoricalAnglePlot1 != null) { angle1 = categoricalAnglePlot1.ConvertToAngle(this.GetChartArea <PolarChartAreaModel>()); } } RadPoint arcPoint1 = RadMath.GetArcPoint(angle1, center, this.radius); this.polarVector1 = new RadPolarVector() { Point = arcPoint1, Angle = angle1, Center = center }; AxisPlotInfo anglePlot2 = this.secondPlotInfo; double angle2 = 0d; NumericalAxisPlotInfo numericalAnglePlot2 = anglePlot2 as NumericalAxisPlotInfo; if (numericalAnglePlot2 != null) { angle2 = numericalAnglePlot2.ConvertToAngle(); } else { CategoricalAxisPlotInfo categoricalAnglePlot2 = anglePlot2 as CategoricalAxisPlotInfo; if (categoricalAnglePlot2 != null) { angle2 = categoricalAnglePlot2.ConvertToAngle(this.GetChartArea <PolarChartAreaModel>()); } } RadPoint arcPoint2 = RadMath.GetArcPoint(angle2, center, this.radius); this.polarVector2 = new RadPolarVector() { Point = arcPoint2, Angle = angle2, Center = center }; return(rect); }
protected static bool TryCreatePlotInfo(AxisModel axis, object value, out AxisPlotInfo plotInfo) { if (axis == null || value == null || !axis.isUpdated) { plotInfo = null; return(false); } plotInfo = axis.CreatePlotInfo(value); return(plotInfo != null); }