     let x4 = end.x + secondLineOffset.dx
     let y4 = end.y + secondLineOffset.dy
     
-    let intersectionX = ((x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4)) / ((x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4))
-    let intersectionY = ((x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4)) / ((x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4))
+    let divisor = ((x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4))
+    
+    if divisor == 0 {
+      return nil
+    }
+    
+    let intersectionX = ((x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4)) / divisor
+    let intersectionY = ((x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4)) / divisor
     
     return CornerPoint(center: CGPoint(x: intersectionX, y: intersectionY),
                        startAngle: firstLineAngle - CGFloat.pi / 2,

      let arrowStartPoint = CGPoint(x: arrowPosition.x + arrowSize.height, y: arrowPosition.y + arrowSize.width / 2)
      let arrowEndPoint = CGPoint(x: arrowPosition.x + arrowSize.height, y: arrowPosition.y - arrowSize.width / 2)
      let arrowVertex = arrowPosition
      let cornerPoint = self.roundCornerCircleCenter(start: arrowStartPoint, vertex: arrowVertex, end: arrowEndPoint, radius: arrowRadius)
      
      // 1: Arrow starting point
      path.move(to: CGPoint(x: arrowStartPoint.x, y: arrowStartPoint.y))
      // 2: Arrow vertex arc
      path.addArc(withCenter: cornerPoint.center, radius: arrowRadius, startAngle: cornerPoint.startAngle, endAngle: cornerPoint.endAngle, clockwise: true)
      // 3: End drawing arrow
      path.addLine(to: CGPoint(x: arrowEndPoint.x, y: arrowEndPoint.y))
      // 6: Left top line

      let arrowStartPoint = CGPoint(x: arrowPosition.x - arrowSize.height, y: arrowPosition.y - arrowSize.width / 2)
      let arrowEndPoint = CGPoint(x: arrowPosition.x - arrowSize.height, y: arrowPosition.y + arrowSize.width / 2)
      let arrowVertex = arrowPosition
      
      // 1: Arrow starting point
      path.move(to: CGPoint(x: arrowStartPoint.x, y: arrowStartPoint.y))
      // 2: Arrow vertex arc
      if let cornerPoint = self.roundCornerCircleCenter(start: arrowStartPoint, vertex: arrowVertex, end: arrowEndPoint, radius: arrowRadius) {
        path.addArc(withCenter: cornerPoint.center, radius: arrowRadius, startAngle: cornerPoint.startAngle, endAngle: cornerPoint.endAngle, clockwise: true)
      }
      // 3: End drawing arrow
      path.addLine(to: CGPoint(x: arrowEndPoint.x, y: arrowEndPoint.y))
      // 4: Right bottom line
