I had a look at the intersectsTargetDown method. Now, I did not check this for correctness (it is obviously not correct), so I thought of creating a new version.
1) since the ball hits the brick from below, the touchpoint must be:
ballYTouchpoint = ballYPos - durch / 2; (make a sketch if that isn't clear). The corresponding x of this touchpoint is of course ballXPos.
2) and the opposite point on the circle is therefore: ballYOppositeSide = ballYTouchpoint + durch; (why the '+'?)
3) the downside of the brick has as left coordinate: downsideXL = col * gapX + startX
4) and has a right X of: downsideXR = downsideXL + brickW;
5) the downside has an Y coordinate of: downsideY = row * gapY + startY + brickH (why the '+'?)