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);
        }
Exemple #2
0
        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();
        }