public void AddPolar(ChartStylePolar csp) { double xc = csp.ChartCanvas.Width / 2; double yc = csp.ChartCanvas.Height / 2; int j = 0; foreach (DataSeries ds in DataList) { if (ds.SeriesName == "Default Name") { ds.SeriesName = "DataSeries" + j.ToString(); } ds.AddLinePattern(); for (int i = 0; i < ds.LineSeries.Points.Count; i++) { double r = ds.LineSeries.Points[i].Y; var angle = ds.LineSeries.Points[i].X; var offset = csp.AngleOffset; if (csp.AngleDirection == ChartStylePolar.AngleDirectionEnum.CounterClockWise) { angle = -angle; offset = -csp.AngleOffset; } double theta = (angle + offset) * Math.PI / 180; double x = xc + csp.RNormalize(r) * Math.Cos(theta); double y = yc + csp.RNormalize(r) * Math.Sin(theta); ds.LineSeries.Points[i] = new Point(x, y); } csp.ChartCanvas.Children.Add(ds.LineSeries); j++; } }
public void AddPolar(ChartStylePolar csp) { double xc = csp.ChartCanvas.Width / 2; double yc = csp.ChartCanvas.Height / 2; int j = 0; foreach (DataSeries ds in DataList) { if (ds.SeriesName == "Default Name") { ds.SeriesName = "DataSeries" + j.ToString(); } ds.AddLinePattern(); for (int i = 0; i < ds.LineSeries.Points.Count; i++) { double r = ds.LineSeries.Points[i].Y; var angle = ds.LineSeries.Points[i].X; var offset = csp.AngleOffset; if (csp.AngleDirection == ChartStylePolar.AngleDirectionEnum.CounterClockWise) { angle = -angle; offset = -csp.AngleOffset; } double theta = (angle + offset) * Math.PI / 180; double x = xc + csp.RNormalize(r) * Math.Cos(theta); double y = yc + csp.RNormalize(r) * Math.Sin(theta); ds.LineSeries.Points[i] = new Point(x, y); } csp.ChartCanvas.Children.Add(ds.LineSeries); j++; } }
private void AddChart1() { var cs = new ChartStylePolar(); var dc = new DataCollectionPolar(); cs.ChartCanvas = chartCanvas; cs.Rmin = -7.0; cs.Rmax = 3.0; cs.NTicks = 4; cs.AngleStep = 15; cs.AngleOffset = -90; cs.AngleDirection = ChartStylePolar.AngleDirectionEnum.ClockWise; cs.LinePattern = ChartStylePolar.LinePatternEnum.Dot; cs.LineColor = Brushes.Black; cs.SetPolarAxes(); var ds1 = new DataSeries(); ds1.LineColor = Brushes.Red; for (int i = 0; i < 360; i++) { double theta = 1.0 * i; double r = Math.Log(1.001 + Math.Sin(2 * theta * Math.PI / 180)); ds1.LineSeries.Points.Add(new Point(theta, r)); } dc.DataList.Add(ds1); var ds2 = new DataSeries(); ds2.LineColor = Brushes.Blue; for (int i = 0; i < 360; i++) { double theta = 1.0 * i; double r = Math.Log(1.001 + Math.Cos(2 * theta * Math.PI / 180)); ds2.LineSeries.Points.Add(new Point(theta, r)); } //dc.DataList.Add(ds2); var ds3 = new DataSeries(); ds3.LineColor = Brushes.Green; //ds3.LineSeries.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Unspecified); ds3.LineSeries.Points.Add(new Point(0, -7)); var fill = new SolidColorBrush(Colors.Red); fill.Opacity = .5; ds3.LineSeries.Fill = fill; //ds3.LineSeries.Points.Add(new Point(-15, 1)); for (int i = -15; i <= 15; i++) { double theta = 1.0 * i; //double r = Math.Log(1.001 + Math.Cos(2 * theta * Math.PI / 180)); ds3.LineSeries.Points.Add(new Point(theta, 1)); } //ds3.LineSeries.Points.Add(new Point(15, 1)); ds3.LineSeries.Points.Add(new Point(0, -7)); dc.DataList.Add(ds3); dc.AddPolar(cs); }
private void AddChart1() { var cs = new ChartStylePolar(); var dc = new DataCollectionPolar(); cs.ChartCanvas = chartCanvas; cs.Rmin = -7.0; cs.Rmax = 3.0; cs.NTicks = 4; cs.AngleStep = 15; cs.AngleOffset = -90; cs.AngleDirection = ChartStylePolar.AngleDirectionEnum.ClockWise; cs.LinePattern = ChartStylePolar.LinePatternEnum.Dot; cs.LineColor = Brushes.Black; cs.SetPolarAxes(); var ds1 = new DataSeries(); ds1.LineColor = Brushes.Red; for (int i = 0; i < 360; i++) { double theta = 1.0 * i; double r = Math.Log(1.001 + Math.Sin(2 * theta * Math.PI / 180)); ds1.LineSeries.Points.Add(new Point(theta, r)); } dc.DataList.Add(ds1); var ds2 = new DataSeries(); ds2.LineColor = Brushes.Blue; for (int i = 0; i < 360; i++) { double theta = 1.0 * i; double r = Math.Log(1.001 + Math.Cos(2 * theta * Math.PI / 180)); ds2.LineSeries.Points.Add(new Point(theta, r)); } //dc.DataList.Add(ds2); var ds3 = new DataSeries(); ds3.LineColor = Brushes.Green; //ds3.LineSeries.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Unspecified); ds3.LineSeries.Points.Add(new Point(0, -7)); var fill = new SolidColorBrush(Colors.Red); fill.Opacity = .5; ds3.LineSeries.Fill = fill; //ds3.LineSeries.Points.Add(new Point(-15, 1)); for (int i = -15; i <= 15; i++) { double theta = 1.0 * i; //double r = Math.Log(1.001 + Math.Cos(2 * theta * Math.PI / 180)); ds3.LineSeries.Points.Add(new Point(theta, 1)); } //ds3.LineSeries.Points.Add(new Point(15, 1)); ds3.LineSeries.Points.Add(new Point(0, -7)); dc.DataList.Add(ds3); dc.AddPolar(cs); }