Example #1
0
        public static void Cut(int t, IData data)
        {
            double[] point   = { 0, t, 0 };
            double[] v1      = { 1, 0, 0 };
            double[] v2      = { 0, 0, 1 };
            double   spacing = 0.1;

            // string finalFile = GenerateFinalFileName(point, v1, v2, xRes, yRes, spacing);

            double[] spacings  = { data.XSpacing, data.YSpacing, data.ZSpacing };
            int[]    dimenses  = data.Measures;
            int      xRes      = (int)(dimenses[0] * spacings[0] / spacing);
            int      yRes      = (int)(dimenses[1] * spacings[1] / spacing);
            int      zRes      = (int)(dimenses[2] * spacings[2] / spacing);
            string   finalFile = "cutTestYspacing01point" + t + "Micro.bmp";

            double[] realPoint = new double[3];
            for (int i = 0; i < realPoint.Length; i++)
            {
                realPoint[i] = point[i] * spacings[i];
            }

            Console.WriteLine("Cutting...");
            double[,] cut = data.Cut(realPoint, v1, v2, xRes, zRes, spacing);


            Console.WriteLine("Cut finished");
            Console.WriteLine("Creating bitmap...");
            PictureMaker pm     = new PictureMaker(cut);
            Bitmap       bitmap = pm.MakeBitmap();

            Console.WriteLine("Bitmap finished");

            Console.WriteLine("Saving bitmap to file...");
            try
            {
                bitmap.Save(finalFile, System.Drawing.Imaging.ImageFormat.Bmp);
                Console.WriteLine("Save to bitmap succesful");
            }
            catch (Exception e)
            {
                Console.WriteLine("Save to bitmap failed");
                Console.Write(e.Message);
            }
        }
Example #2
0
        public static void Cut(Matrix <double> rotation, Vector <double> translation)
        {
            for (int i = 0; i < 10; i++)
            {
                double[] point   = { 0, i * 100, 0 };
                double[] v1      = { 1, 0, 0 };
                double[] v2      = { 0, 0, 1 };
                double   spacing = 0.1;

                double[] spacings = { iDataMicro.XSpacing, iDataMicro.YSpacing, iDataMicro.ZSpacing };
                int[]    dimenses = iDataMicro.Measures;
                int      xRes     = (int)(dimenses[0] * spacings[0] / spacing);
                int      yRes     = (int)(dimenses[1] * spacings[1] / spacing);
                int      zRes     = (int)(dimenses[2] * spacings[2] / spacing);

                string finalFileMicro = "cutTestMicro" + i + ".bmp";
                string finalFileMacro = "cutTestMacro" + i + ".bmp";

                double[] realPoint = new double[3];
                for (int ii = 0; ii < realPoint.Length; ii++)
                {
                    realPoint[ii] = point[ii] * spacings[ii];
                }

                Vector <double> v = Vector <double> .Build.Dense(3);

                v[0] = realPoint[0];
                v[1] = realPoint[1];
                v[2] = realPoint[2];

                Vector <double> u = rotation.Multiply(v);
                u += translation;
                double[] Q = new double[] { u[0], u[1], u[2] };

                Vector <double> vec1 = Vector <double> .Build.Dense(3);

                vec1[0] = v1[0];
                vec1[1] = v1[1];
                vec1[2] = v1[2];

                Vector <double> uvec1 = rotation.Multiply(vec1);
                uvec1 += translation;
                double[] Qv1 = new double[] { uvec1[0], uvec1[1], uvec1[2] };

                Vector <double> vec2 = Vector <double> .Build.Dense(3);

                vec2[0] = v2[0];
                vec2[1] = v2[1];
                vec2[2] = v2[2];

                Vector <double> uvec2 = rotation.Multiply(vec2);
                uvec2 += translation;
                double[] Qv2 = new double[] { uvec2[0], uvec2[1], uvec2[2] };

                Console.WriteLine("Cutting...");
                double[,] cutMacro = iDataMacro.Cut(Q, Qv1, Qv2, xRes, zRes, spacing);
                double[,] cutMicro = iDataMicro.Cut(realPoint, v1, v2, xRes, zRes, spacing);


                Console.WriteLine("Cuts finished");
                Console.WriteLine("Creating macro bitmap...");
                PictureMaker pmMacro     = new PictureMaker(cutMacro);
                Bitmap       bitmapMacro = pmMacro.MakeBitmap();
                Console.WriteLine("Macro bitmap finished");

                Console.WriteLine("Saving macro bitmap to file...");
                try
                {
                    bitmapMacro.Save(finalFileMacro, System.Drawing.Imaging.ImageFormat.Bmp);
                    Console.WriteLine("Save to bitmap succesful");
                }
                catch (Exception e)
                {
                    Console.WriteLine("Save to bitmap failed");
                    Console.Write(e.Message);
                }

                Console.WriteLine("Creating micro bitmap...");
                PictureMaker pmMicro     = new PictureMaker(cutMicro);
                Bitmap       bitmapMicro = pmMicro.MakeBitmap();
                Console.WriteLine("Micro bitmap finished");

                Console.WriteLine("Saving micro bitmap to file...");
                try
                {
                    bitmapMicro.Save(finalFileMicro, System.Drawing.Imaging.ImageFormat.Bmp);
                    Console.WriteLine("Save to bitmap succesful");
                }
                catch (Exception e)
                {
                    Console.WriteLine("Save to bitmap failed");
                    Console.Write(e.Message);
                }
            }
        }