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