private void PrintIFICorners(IFI_Perimeter perm) { Console.WriteLine("IFI Corners: "); Console.WriteLine("North East Corner: {0}", perm.NE_corner); Console.WriteLine("North west Corner: {0}", perm.NW_corner); Console.WriteLine("Press Enter to Continue: "); Console.ReadKey(); }
private IFI_Perimeter CalculateCenter(IFI_Perimeter perm) { double x1, x2, y1, y2; if (!(perm.Corner1.Item1.Equals(perm.Corner2.Item1)) && !(perm.Corner1.Item2.Equals(perm.Corner2.Item2))) { x1 = perm.Corner1.Item1; x2 = perm.Corner2.Item1; y1 = perm.Corner1.Item2; y2 = perm.Corner2.Item2; } else if (!(perm.Corner1.Item1.Equals(perm.Corner3.Item1)) && !(perm.Corner1.Item2.Equals(perm.Corner3.Item2))) //Corrected { x1 = perm.Corner1.Item1; x2 = perm.Corner3.Item1; y1 = perm.Corner1.Item2; y2 = perm.Corner3.Item2; } else { x1 = perm.Corner1.Item1; x2 = perm.Corner4.Item1; y1 = perm.Corner1.Item2; y2 = perm.Corner4.Item2; } var Width = x2 - x1; var Height = y2 - y1; var x0 = x2; var y0 = y2; //KB NOTE: Extra variables added to identify fixed corner (NE corner) and then to be used in finding center consistently. if (Width < 0) { Width = Width * -1; x0 = x1; } if (Height < 0) { Height = Height * -1; y0 = y1; } // KB NOTE: changed perm.Center so that it is always calculated from NE corner (largest x and largest y in block) perm.Center = new Tuple <double, double>((x0 - (Width / 2)), (y0 - (Height / 2))); perm.Height = Height; perm.Width = Width; return(perm); }
private void Write_to_file(IFI_Perimeter perm) { string current_directory = Directory.GetCurrentDirectory(); string mydocpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); using (StreamWriter outputFile = new StreamWriter(current_directory + @"\Output.txt")) { outputFile.Write("perm SECTION VALUES "); outputFile.Write(Environment.NewLine); outputFile.Write("===================="); outputFile.Write(Environment.NewLine); outputFile.Write("Corner 1: {0} ", p_perm.Corner1); outputFile.Write(Environment.NewLine ); outputFile.Write("Corner 2: {0} ", p_perm.Corner2); outputFile.Write(Environment.NewLine); outputFile.Write("Corner 3: {0} ", p_perm.Corner3); outputFile.Write(Environment.NewLine); outputFile.Write("Corner 4: {0} ", p_perm.Corner4); outputFile.Write(Environment.NewLine); outputFile.Write("Center : {0}", p_perm.Center); outputFile.Write(Environment.NewLine); outputFile.Write("perm Dimensions: "); outputFile.Write(Environment.NewLine); outputFile.Write("=================="); outputFile.Write(Environment.NewLine); outputFile.Write("Width: {0}", p_perm.Width); outputFile.Write(Environment.NewLine); outputFile.Write("Height: {0}", p_perm.Height); outputFile.Write(Environment.NewLine); outputFile.Write("IFI Values:"); outputFile.Write(Environment.NewLine); outputFile.Write("============"); outputFile.Write(Environment.NewLine); outputFile.Write("Corner 1: {0}", IFI_Boarder.Corner1); outputFile.Write(Environment.NewLine); outputFile.Write("Corner 2: {0}", IFI_Boarder.Corner2); outputFile.Write(Environment.NewLine); outputFile.Write("Corner 3: {0}", IFI_Boarder.Corner3); outputFile.Write(Environment.NewLine); outputFile.Write("Corner 4: {0}", IFI_Boarder.Corner4); outputFile.Write(Environment.NewLine); outputFile.Write("IFI Dimensions: "); outputFile.Write(Environment.NewLine); outputFile.Write("=================="); outputFile.Write(Environment.NewLine); outputFile.Write("Width: {0}", IFI_Boarder.Width); outputFile.Write(Environment.NewLine); outputFile.Write("Height: {0}", IFI_Boarder.Height); outputFile.Write(Environment.NewLine); outputFile.Write("Panel/Entities Values:"); outputFile.Write(Environment.NewLine); outputFile.Write("======================"); outputFile.Write(Environment.NewLine); int count2 = 0; foreach (var x in PanelList) { outputFile.Write("Panel Number {0}: ", count2); outputFile.Write(Environment.NewLine); outputFile.Write("X value: {0}", x.Xvalue.ToString()); outputFile.Write(Environment.NewLine); outputFile.Write("Y Value: {0} ", x.Yvalue.ToString()); outputFile.Write(Environment.NewLine); outputFile.Write("Center Value: {0}", x.Center.ToString()); outputFile.Write(Environment.NewLine); outputFile.Write("Panel NE_Zone: {0}", x.NE_Zone.ToString()); outputFile.Write(Environment.NewLine); outputFile.Write("neighborhood panels: ", x.NeighborHood.ToString()); outputFile.Write(Environment.NewLine); count2 += 1; } outputFile.Write("IFI Corners: "); outputFile.Write(Environment.NewLine); outputFile.Write("North East Corner: {0}", perm.NE_corner); outputFile.Write(Environment.NewLine); outputFile.Write("North west Corner: {0}", perm.NW_corner); outputFile.Write(Environment.NewLine); } }
/// <summary> /// Function to organize corners of each perm /// c1 = NW corner /// c2 = NE corner /// c3 = SW corner /// c4 = SE corner /// </summary> private void SetCorners(IFI_Perimeter perm) { List <Tuple <double, double> > corner_list = new List <Tuple <double, double> >(); corner_list.Add(perm.Corner1); corner_list.Add(perm.Corner2); corner_list.Add(perm.Corner3); corner_list.Add(perm.Corner4); var max_x = corner_list[0].Item1; var max_y = corner_list[0].Item2; var min_x = corner_list[0].Item1; foreach (var x in corner_list) { if (x.Item1 >= max_x) { max_x = x.Item1; } if (x.Item2 >= max_y) { max_y = x.Item2; } if (x.Item1 <= min_x) { min_x = x.Item1; } } if ((perm.Corner1.Item1 == max_x) && (perm.Corner1.Item2 == max_y)) { perm.NW_corner = perm.Corner1; } else if ((perm.Corner2.Item1 == max_x) && (perm.Corner2.Item2 == max_y)) { perm.NW_corner = perm.Corner2; } else if ((perm.Corner3.Item1 == max_x) && (perm.Corner3.Item2 == max_y)) { perm.NW_corner = perm.Corner3; } else { perm.NW_corner = perm.Corner4; } if ((perm.Corner1.Item1 == min_x) && (perm.Corner1.Item2 == max_y)) { perm.NE_corner = perm.Corner1; } else if ((perm.Corner2.Item1 == min_x) && (perm.Corner2.Item2 == max_y)) { perm.NE_corner = perm.Corner2; } else if ((perm.Corner3.Item1 == min_x) && (perm.Corner3.Item2 == max_y)) { perm.NE_corner = perm.Corner3; } else { perm.NE_corner = perm.Corner4; } return; }