public SkewedGridRecognizer(Vector2Int gridNumber, Dictionary <Color, string> colorBlockNames, Vector2[] corners) : base(gridNumber, colorBlockNames) { intersectionPoints = new Vector2[GridNumber.x, GridNumber.y]; Corners = corners; for (int i = 0; i < GridNumber.x; i++) //generates polygons according to the given corner positions { for (int j = 0; j < GridNumber.y; j++) { var A1 = (Corners[1] - Corners[0]) / GridNumber.x * i + Corners[0]; var A2 = (Corners[2] - Corners[3]) / GridNumber.x * i + Corners[3]; var B1 = (Corners[0] - Corners[3]) / GridNumber.y * j + Corners[3]; var B2 = (Corners[1] - Corners[2]) / GridNumber.y * j + Corners[2]; bool exists = false; Debug.Log(i.ToString() + " " + j.ToString()); intersectionPoints[i, j] = Geometry2D.GetIntersectionPointCoordinates(A1, A2, B1, B2, out exists); } } }