public PolarControl() { InitializeComponent(); cs = new ChartStylePolar(); dc = new DataCollectionPolar(); ds = new DataSeries(); cs.ChartCanvas = chartCanvas; }
public void Plot(Canvas canvas, double min, double max, int directions) { var cs = new ChartStylePolar(); cs.ChartCanvas = canvas; cs.Rmin = min; cs.Rmax = max; cs.NTicks = 4; cs.AngleStep = 360 / directions; cs.AngleOffset = -90; cs.AngleDirection = ChartStylePolar.AngleDirectionEnum.ClockWise; cs.LinePattern = ChartStylePolar.LinePatternEnum.Dot; cs.LineColor = Brushes.Black; cs.SetPolarAxes(true); var dc = new DataCollectionPolar(); foreach (var plot in _plots.Values) { var ds = new DataSeries(); ds.LineColor = new SolidColorBrush(plot.LineColor); var fill = new SolidColorBrush(plot.FillColor); fill.Opacity = .5; ds.LineSeries.Fill = fill; var dt = 360 / directions / 2; foreach (var sector in plot.Points) { ds.LineSeries.Points.Add(new Point(0, cs.Rmin)); for (int i = 0; i <= cs.AngleStep; i++) { double angle = i + sector.Direction * cs.AngleStep - dt; ds.LineSeries.Points.Add(new Point(angle, sector.Value)); } ds.LineSeries.Points.Add(new Point(0, cs.Rmin)); } dc.DataList.Add(ds); } dc.AddPolar(cs); }