private void FillData() { NChart chart = nChartControl1.Charts[0]; NTriangulatedSurfaceSeries surface = (NTriangulatedSurfaceSeries)chart.Series[0]; Random rand = new Random(); const int countX = 100; const int countZ = 100; NRange1DD rangeX = new NRange1DD(-10, 10); NRange1DD rangeZ = new NRange1DD(-10, 10); double stepX = rangeX.GetLength() / (countX - 1); double stepZ = rangeZ.GetLength() / (countZ - 1); double cx = -3.0; double cz = -5.0; NVector3DD[] vectorData = new NVector3DD[countZ * countX]; int index = 0; for (int n = 0; n < countZ; n++) { double z = rangeZ.Begin + n * stepZ; for (int m = 0; m < countX; m++) { double x = rangeX.Begin + m * stepX; double dx = cx - x; double dz = cz - z; double distance = Math.Sqrt(dx * dx + dz * dz); vectorData[index] = new NVector3DD(x, Math.Sin(distance) * Math.Exp(-distance * 0.1), z); index++; } } if (SimplifySurfaceCheckBox.Checked) { NPointSetSimplifier3D pointSetSimplifier3D = new NPointSetSimplifier3D(); pointSetSimplifier3D.DistanceFactor = 0.01f; vectorData = pointSetSimplifier3D.Simplify(vectorData); } surface.Data.Clear(); surface.Data.AddValues(vectorData); }
void INCustomSeriesCallback.GetAxisRanges(out NRange1DD rangeX, out NRange1DD rangeY) { if ((Points == null) || (Points.Length == 0)) { rangeX.Begin = Double.NaN; rangeX.End = Double.NaN; rangeY.Begin = Double.NaN; rangeY.End = Double.NaN; } else { rangeX.End = rangeX.Begin = Points[0].X; rangeY.End = rangeY.Begin = Points[0].Y; for (int i = 1; i < Points.Length; i++) { NPointF point = Points[i]; if (point.X > rangeX.End) { rangeX.End = point.X; } else if (point.X < rangeX.Begin) { rangeX.Begin = point.X; } if (point.Y > rangeY.End) { rangeY.End = point.Y; } else if (point.Y < rangeY.Begin) { rangeY.Begin = point.Y; } } rangeX.Inflate(0.1 * rangeX.GetLength()); rangeY.Inflate(0.1 * rangeY.GetLength()); } }
private void FillData() { if (nChartControl1 == null) { return; } NChart chart = nChartControl1.Charts[0]; NTriangulatedSurfaceSeries surface = (NTriangulatedSurfaceSeries)chart.Series[0]; NTriangulatedSurfaceData surfaceData = surface.Data; if (m_SurfaceVectorData == null) { Random rand = new Random(); const int countX = 100; const int countZ = 100; NRange1DD rangeX = new NRange1DD(-10, 10); NRange1DD rangeZ = new NRange1DD(-10, 10); double stepX = rangeX.GetLength() / (countX - 1); double stepZ = rangeZ.GetLength() / (countZ - 1); double cx = -3.0; double cz = -5.0; NVector3DD[] vectorData = new NVector3DD[countZ * countX]; int index = 0; for (int n = 0; n < countZ; n++) { double z = rangeZ.Begin + n * stepZ; for (int m = 0; m < countX; m++) { double x = rangeX.Begin + m * stepX; double dx = cx - x; double dz = cz - z; double distance = Math.Sqrt(dx * dx + dz * dz); vectorData[index++] = new NVector3DD(x, Math.Sin(distance) * Math.Exp(-distance * 0.1), z); } } m_SurfaceVectorData = vectorData; } NVector3DD[] newSurfaceVectorData = m_SurfaceVectorData;; if (SimplifySurfaceCheckBox.IsChecked.Value) { NPointSetSimplifier3D simplifier = new NPointSetSimplifier3D(); simplifier.DistanceFactor = 0.01; newSurfaceVectorData = simplifier.Simplify(newSurfaceVectorData); } surfaceData.Clear(); surfaceData.AddValues(newSurfaceVectorData); nChartControl1.Refresh(); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void OnTimerTick(object sender, EventArgs e) { Random random = new Random(); for (int i = 0; i < m_Bar.Values.Count; i++) { double value = (m_AxisRange.Begin + m_AxisRange.End) / 2.0 + Math.Sin(m_IndicatorPhase[i] * NMath.Degree2Rad) * m_AxisRange.GetLength() / 2 + random.Next(20); value = m_AxisRange.GetValueInRange(value); m_Bar.Values[i] = value; m_IndicatorPhase[i] += 10; } nChartControl1.Refresh(); }