/// <summary> /// rescales the grid to a larger or smaller image /// </summary> /// <param name="original_image_width"></param> /// <param name="original_image_height"></param> /// <param name="new_image_width"></param> /// <param name="new_image_height"></param> /// <returns></returns> public grid2D Scale(int original_image_width, int original_image_height, int new_image_width, int new_image_height) { polygon2D new_perimeter = perimeter.Copy(); for (int i = 0; i < new_perimeter.x_points.Count; i++) { float x = (float)new_perimeter.x_points[i] * new_image_width / original_image_width; float y = (float)new_perimeter.y_points[i] * new_image_height / original_image_height; new_perimeter.x_points[i] = x; new_perimeter.y_points[i] = y; } grid2D new_grid = new grid2D(cell.Length, cell[0].Length); new_grid.init(cell.Length, cell[0].Length, new_perimeter, 0, false); return(new_grid); }