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); }
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(); }