Example #1
0
        public MainWindow()
        {
            InitializeComponent();

            double[][] data1       = PTL.Tools.FileOperation.Json.ReadJsonFile <double[][]>("DataPoints.txt");
            XYZ[]      dataPoints1 = new XYZ[data1.Length];
            for (int i = 0; i < data1.Length; i++)
            {
                dataPoints1[i] = new XYZ(data1[i]);
            }

            double[][] data2       = PTL.Tools.FileOperation.Json.ReadJsonFile <double[][]>("DataPoints.txt");
            XYZ[]      dataPoints2 = new XYZ[data2.Length];
            for (int i = 0; i < data2.Length; i++)
            {
                dataPoints2[i]    = new XYZ(data2[i]);
                dataPoints2[i].X -= 10;
                dataPoints2[i].Y += 10;
            }

            double[][] data3       = PTL.Tools.FileOperation.Json.ReadJsonFile <double[][]>("DataPoints.txt");
            XYZ[]      dataPoints3 = new XYZ[data3.Length];
            for (int i = 0; i < data3.Length; i++)
            {
                dataPoints3[i]    = new XYZ(data3[i]);
                dataPoints3[i].Y += 20;
            }

            double[][] data4       = PTL.Tools.FileOperation.Json.ReadJsonFile <double[][]>("DataPoints.txt");
            XYZ[]      dataPoints4 = new XYZ[data4.Length];
            for (int i = 0; i < data4.Length; i++)
            {
                dataPoints4[i]    = new XYZ(data4[i]);
                dataPoints4[i].X += 10;
                dataPoints4[i].Y += 30;
                dataPoints4[i].Z -= 5;
            }

            double[][] data5       = PTL.Tools.FileOperation.Json.ReadJsonFile <double[][]>("DataPoints.txt");
            XYZ[]      dataPoints5 = new XYZ[data5.Length];
            for (int i = 0; i < data5.Length; i++)
            {
                dataPoints5[i]    = new XYZ(data5[i]);
                dataPoints5[i].Y += 40;
                dataPoints5[i].Z -= 10;
            }

            Non_Uniform_B_Spline_Curve   nurbs_Curve1   = new Non_Uniform_B_Spline_Curve(dataPoints1);
            Non_Uniform_B_Spline_Curve   nurbs_Curve2   = new Non_Uniform_B_Spline_Curve(dataPoints2);
            Non_Uniform_B_Spline_Curve   nurbs_Curve3   = new Non_Uniform_B_Spline_Curve(dataPoints3);
            Non_Uniform_B_Spline_Curve   nurbs_Curve4   = new Non_Uniform_B_Spline_Curve(dataPoints4);
            Non_Uniform_B_Spline_Curve   nurbs_Curve5   = new Non_Uniform_B_Spline_Curve(dataPoints5);
            Non_Uniform_B_Spline_Surface nurbs_Surface2 = new Non_Uniform_B_Spline_Surface(new XYZ[][] { dataPoints1, dataPoints2, dataPoints3, dataPoints4, dataPoints5 });

            PTL.Tools.DebugTools.Plot plot = new PTL.Tools.DebugTools.Plot();
            plot.Window.View.AutoScale = false;
            plot.ParameterPlot((para) => nurbs_Curve1.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((para) => nurbs_Curve2.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((para) => nurbs_Curve3.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((para) => nurbs_Curve4.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((para) => nurbs_Curve5.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((u, v) => nurbs_Surface2.SurfaceFunc(u, v), 0, 1, 100, 0, 1, 100, (tf) => { tf.SurfaceDisplayOption = PTL.Geometry.SurfaceDisplayOptions.EdgeOnly; });


            PointD[] dataPointD1 = (from coordinate in dataPoints1
                                    select new PointD(coordinate.Value)
            {
                OpenGLDisplaySize = 0.005
            }).ToArray();
            plot.Window.View.AddSomeThing2Show(dataPointD1);
            PointD[] dataPointD2 = (from coordinate in dataPoints2
                                    select new PointD(coordinate.Value)
            {
                OpenGLDisplaySize = 0.005
            }).ToArray();
            plot.Window.View.AddSomeThing2Show(dataPointD2);
        }
        public MainWindow()
        {
            InitializeComponent();

            double[][] data1 = PTL.Tools.FileOperation.Json.ReadJsonFile<double[][]>("DataPoints.txt");
            XYZ[] dataPoints1 = new XYZ[data1.Length];
            for (int i = 0; i < data1.Length; i++)
                dataPoints1[i] = new XYZ(data1[i]);

            double[][] data2 = PTL.Tools.FileOperation.Json.ReadJsonFile<double[][]>("DataPoints.txt");
            XYZ[] dataPoints2 = new XYZ[data2.Length];
            for (int i = 0; i < data2.Length; i++)
            {
                dataPoints2[i] = new XYZ(data2[i]);
                dataPoints2[i].X -= 10;
                dataPoints2[i].Y += 10;
            }

            double[][] data3 = PTL.Tools.FileOperation.Json.ReadJsonFile<double[][]>("DataPoints.txt");
            XYZ[] dataPoints3 = new XYZ[data3.Length];
            for (int i = 0; i < data3.Length; i++)
            {
                dataPoints3[i] = new XYZ(data3[i]);
                dataPoints3[i].Y += 20;
            }

            double[][] data4 = PTL.Tools.FileOperation.Json.ReadJsonFile<double[][]>("DataPoints.txt");
            XYZ[] dataPoints4 = new XYZ[data4.Length];
            for (int i = 0; i < data4.Length; i++)
            {
                dataPoints4[i] = new XYZ(data4[i]);
                dataPoints4[i].X += 10;
                dataPoints4[i].Y += 30;
                dataPoints4[i].Z -= 5;
            }

            double[][] data5 = PTL.Tools.FileOperation.Json.ReadJsonFile<double[][]>("DataPoints.txt");
            XYZ[] dataPoints5 = new XYZ[data5.Length];
            for (int i = 0; i < data5.Length; i++)
            {
                dataPoints5[i] = new XYZ(data5[i]);
                dataPoints5[i].Y += 40;
                dataPoints5[i].Z -= 10;
            }

            Non_Uniform_B_Spline_Curve nurbs_Curve1 = new Non_Uniform_B_Spline_Curve(dataPoints1);
            Non_Uniform_B_Spline_Curve nurbs_Curve2 = new Non_Uniform_B_Spline_Curve(dataPoints2);
            Non_Uniform_B_Spline_Curve nurbs_Curve3 = new Non_Uniform_B_Spline_Curve(dataPoints3);
            Non_Uniform_B_Spline_Curve nurbs_Curve4 = new Non_Uniform_B_Spline_Curve(dataPoints4);
            Non_Uniform_B_Spline_Curve nurbs_Curve5 = new Non_Uniform_B_Spline_Curve(dataPoints5);
            Non_Uniform_B_Spline_Surface nurbs_Surface2 = new Non_Uniform_B_Spline_Surface(new XYZ[][] { dataPoints1, dataPoints2, dataPoints3, dataPoints4, dataPoints5 });

            PTL.Tools.DebugTools.Plot plot = new PTL.Tools.DebugTools.Plot();
            plot.Window.View.AutoScale = false;
            plot.ParameterPlot((para) => nurbs_Curve1.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((para) => nurbs_Curve2.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((para) => nurbs_Curve3.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((para) => nurbs_Curve4.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((para) => nurbs_Curve5.CurveFunc(para), 0, 1, 1000);
            plot.ParameterPlot((u, v) => nurbs_Surface2.SurfaceFunc(u, v), 0, 1, 100, 0, 1, 100, (tf) => { tf.SurfaceDisplayOption = PTL.Geometry.SurfaceDisplayOptions.EdgeOnly; });

            PointD[] dataPointD1 = (from coordinate in dataPoints1
                                   select new PointD(coordinate.Value) { OpenGLDisplaySize = 0.005 }).ToArray();
            plot.Window.View.AddSomeThing2Show(dataPointD1);
            PointD[] dataPointD2 = (from coordinate in dataPoints2
                                   select new PointD(coordinate.Value) { OpenGLDisplaySize = 0.005 }).ToArray();
            plot.Window.View.AddSomeThing2Show(dataPointD2);
        }