private static AbsRatioDiff ( float x, float y ) : float | ||
x | float | |
y | float | |
return | float |
private static int[] GetGridDivision(Rect rect, int minimumNr, int labelHeight) { float num = Mathf.Sqrt(rect.width * rect.height / (float)minimumNr); int num2 = Mathf.FloorToInt(rect.width / num); int num3 = Mathf.FloorToInt(rect.height / (num + (float)labelHeight)); while (num2 * num3 < minimumNr) { float num4 = ObjectPreview.AbsRatioDiff((float)(num2 + 1) / rect.width, (float)num3 / (rect.height - (float)(num3 * labelHeight))); float num5 = ObjectPreview.AbsRatioDiff((float)num2 / rect.width, (float)(num3 + 1) / (rect.height - (float)((num3 + 1) * labelHeight))); if (num4 < num5) { num2++; if (num2 * num3 > minimumNr) { num3 = Mathf.CeilToInt((float)minimumNr / (float)num2); } } else { num3++; if (num2 * num3 > minimumNr) { num2 = Mathf.CeilToInt((float)minimumNr / (float)num3); } } } return(new int[] { num2, num3 }); }