private void GenerateData(NHeatMapSeries heatMap) { NHeatMapData data = heatMap.Data; int GridStepX = 300; int GridStepY = 300; data.SetGridSize(GridStepX, GridStepY); const double dIntervalX = 10.0; const double dIntervalZ = 10.0; double dIncrementX = (dIntervalX / GridStepX); double dIncrementZ = (dIntervalZ / GridStepY); double y, x, z; z = -(dIntervalZ / 2); for (int col = 0; col < GridStepX; col++, z += dIncrementZ) { x = -(dIntervalX / 2); for (int row = 0; row < GridStepY; row++, x += dIncrementX) { y = 10 - Math.Sqrt((x * x) + (z * z) + 2); y += 3.0 * Math.Sin(x) * Math.Cos(z); double value = y; data.SetValue(row, col, value); } } }
private void GenerateData() { NHeatMapData data = m_HeatMap.Data; data.SetGridSize(m_GridSizeX, m_GridSizeY); const double dIntervalX = 10.0; const double dIntervalZ = 10.0; double dIncrementX = (dIntervalX / m_GridSizeX); double dIncrementZ = (dIntervalZ / m_GridSizeY); double y, x, z; z = -(dIntervalZ / 2); for (int col = 0; col < m_GridSizeX; col++, z += dIncrementZ) { x = -(dIntervalX / 2); for (int row = 0; row < m_GridSizeY; row++, x += dIncrementX) { y = 10 - Math.Sqrt((x * x) + (z * z) + 2); y += 3.0 * Math.Sin(x) * Math.Cos(z); double value = y; data.SetValue(row, col, value); } } }
public override void Initialize() { base.Initialize(); // set a chart title NLabel title = new NLabel("Wafer Chart"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, FontStyle.Italic); title.TextStyle.FillStyle = new NColorFillStyle(GreyBlue); // configure chart NCartesianChart chart = (NCartesianChart)nChartControl1.Charts[0]; m_HeatMap = new NHeatMapSeries(); chart.Series.Add(m_HeatMap); NHeatMapData data = m_HeatMap.Data; m_HeatMap.Palette.Mode = PaletteMode.AutoFixedEntryCount; m_HeatMap.Palette.AutoPaletteColors = new NArgbColorValue[] { new NArgbColorValue(Color.Green), new NArgbColorValue(Color.Red) }; m_HeatMap.Palette.SmoothPalette = true; int gridSizeX = 100; int gridSizeY = 100; data.SetGridSize(gridSizeX, gridSizeY); int centerX = gridSizeX / 2; int centerY = gridSizeY / 2; int radius = gridSizeX / 2; Random rand = new Random(); for (int y = 0; y < gridSizeY; y++) { for (int x = 0; x < gridSizeX; x++) { int dx = x - centerX; int dy = y - centerY; double pointDistance = Math.Sqrt(dx * dx + dy * dy); if (pointDistance < radius) { // assign value data.SetValue(x, y, pointDistance + rand.Next(20)); } else { data.SetValue(x, y, double.NaN); } } } }