void createTestData() { int i, j; float x, y; // init point dataset setPoint = new Chart3DDataSetPoint(); for (int ix = 0; ix < 3; ix++) { for (int iy = 0; iy < 3; iy++) { for (int iz = 0; iz < 3; iz++) { pointData[ix + 3 * iy + 9 * iz].X = ix; pointData[ix + 3 * iy + 9 * iz].Y = iy; pointData[ix + 3 * iy + 9 * iz].Z = iz; pointData1[ix + 3 * iy + 9 * iz].X = 3 + 2 * ix; pointData1[ix + 3 * iy + 9 * iz].Y = 2 * iy; pointData1[ix + 3 * iy + 9 * iz].Z = 2 * iz; } } } setPoint.AddSeries(pointData); setPoint.AddSeries(pointData1); //float[,] gridData = new float[ 11, 11]; float[,] gridData = (float[, ])Array.CreateInstance(typeof(float), 11, 11); for (i = 0; i < gridData.GetLength(0); i++) { for (j = 0; j < gridData.GetLength(1); j++) { x = -5 + i; y = -5 + j; gridData[i, j] = 0.1f * x * x - 0.4f * y * y; } } setGrid = new Chart3DDataSetGrid(-5, -5, 1, 1, gridData); // contour data for 4d chart contourData = (double[, ])Array.CreateInstance(typeof(double), setGrid.ColumnCount, setGrid.RowCount); for (i = 0; i < setGrid.ColumnCount; i++) { for (j = 0; j < setGrid.RowCount; j++) { contourData[i, j] = i + j; } } // init irregular grid dataset float[] xdata = { 1, 2, 6, 8, 9, 13, 15 }; float[] ydata = { 1, 2, 4, 8, 11, 12, 15 }; float[,] vals = (float[, ])Array.CreateInstance(typeof(float), xdata.Length, ydata.Length); setIrGrid = new Chart3DDataSetIrGrid(xdata, ydata, vals); { x = (float)setIrGrid.ColumnOrigin; for (i = 0; i < setIrGrid.ColumnCount; i++) { x += (float)setIrGrid.ColumnDeltaArray[i]; y = (float)setIrGrid.RowOrigin; for (j = 0; j < setIrGrid.RowCount; j++) { y += (float)setIrGrid.RowDeltaArray[j]; float val = 0.1f * x * x - 0.4f * y * y; setIrGrid.SetValue(i, j, val); } } } // starting dataset c1Chart3D1.ChartGroups[0].ChartData.Set = setGrid; // adding labels to chart Chart3DLabel labelC = c1Chart3D1.ChartLabels.LabelsCollection.AddNewLabel(); labelC.Text = "Label(Coordinate)"; labelC.LabelCompass = LabelCompassEnum.SouthEast; labelC.AttachMethodData.X = 20; labelC.AttachMethodData.Y = 20; labelC.Visible = true; Chart3DLabel labelD = c1Chart3D1.ChartLabels.LabelsCollection.AddNewLabel(); labelD.Text = "Label(DataCoordinate)"; labelD.LabelCompass = LabelCompassEnum.SouthEast; labelD.Offset = 50; labelD.Connected = true; labelD.AttachMethod = AttachMethodEnum.DataCoordinate; labelD.AttachMethodData.X = 0; labelD.AttachMethodData.Y = 0; labelD.AttachMethodData.Z = 0; labelD.Visible = true; Chart3DLabel labelI = c1Chart3D1.ChartLabels.LabelsCollection.AddNewLabel(); labelI.Text = "Label(DataIndex)"; labelI.LabelCompass = LabelCompassEnum.SouthWest; labelI.Offset = 25; labelI.Connected = true; labelI.AttachMethod = AttachMethodEnum.DataIndex; labelI.AttachMethodData.SeriesIndex = 2; labelI.AttachMethodData.PointIndex = 4; labelI.Visible = true; // adding data labels c1Chart3D1.DefaultLabelStyle.BackColor = Color.MistyRose; c1Chart3D1.DefaultLabelStyle.Border.BorderStyle = BorderStyleEnum.Solid; for (i = 0; i < setGrid.RowCount; i++) { Chart3DDataLabel lab = c1Chart3D1.ChartGroups.RowLabels.AddNewLabel(); lab.Index = i; lab.Text = "Row " + i.ToString(); } for (j = 0; j < setGrid.ColumnCount; j++) { Chart3DDataLabel lab = c1Chart3D1.ChartGroups.ColumnLabels.AddNewLabel(); lab.Index = j; lab.Text = "Col " + j.ToString(); } // adding labels to axis foreach (Chart3DAxis axis in c1Chart3D1.ChartArea.Axes) { Chart3DAxisLabel alab1 = axis.ValueLabels.AddNewLabel(); alab1.Value = -1; alab1.Text = "minus one"; Chart3DAxisLabel alab2 = axis.ValueLabels.AddNewLabel(); alab2.Value = +1; alab2.Text = "plus one"; } // set bar colors c1Chart3D1.ChartGroups[0].Bar.SetBarColor(1, 1, Color.Red); c1Chart3D1.ChartGroups[0].Bar.SetBarColor(1, 2, Color.Red); c1Chart3D1.ChartGroups[0].Bar.SetBarColor(-1, 3, Color.Blue); c1Chart3D1.ChartGroups[0].Bar.SetBarColor(3, -1, Color.Green); }