public static void ShortenLineForEdge(double d, Edge currentEdge, Edge nextEdge) { Vertice start = currentEdge.Start; Vertice middle = currentEdge.End; Vertice end = nextEdge.End; Vertice helper = new Vertice(end.x - CONST.ShortenLineForEdgeDistance, end.y - CONST.ShortenLineForEdgeDistance); (double, double)lineHelp = Line.GetStraightLine(helper, end); Vertice resultVertice = PointHelpers.GetPointInProportion(1 / 2, helper, end); (double, double)line = Line.GetStraightLine(start, resultVertice); (Vertice, Vertice)midVertices = PointHelpers.GetPointFromLineDistanceAndPoint(line, d, currentEdge.Start); Vertice midVertice = DistanceHelpers.GetCloserVerticeFromLine(lineHelp, midVertices); PointHelpers.SetPointXY(middle, midVertice.x, midVertice.y); }