public Triangle Calculate(Int32 sideA, Int32 sideB, Int32 sideC, Int32 canvasWidth, Int32 canvasHeight) { var vertex2X = (sideB * sideB + sideC * sideC - sideA * sideA) / (2.0 * sideB); var vertex2Y = Math.Sqrt(sideC * sideC - vertex2X * vertex2X); var triangle = new Triangle( vertex1: new Point(0, 0), vertex2: new Point(vertex2X, vertex2Y), vertex3: new Point(sideB, 0) ); triangle.FlipVertical(); var triangleCenter = triangle.GetCenter(); var canvasCenter = new Point(canvasWidth / 2.0, canvasHeight / 2.0); var offset = canvasCenter - triangleCenter; triangle.Vertex1 += offset; triangle.Vertex2 += offset; triangle.Vertex3 += offset; return(triangle); }