いちおう展開してみたけど、これでいい?
もっと変数減らせるかは知らん。

D = 2ac(b-d) - r*r

D < 0 で0個

x = c - a(b - d) ± sqrt(D)
y = ax + b

a = (Qy - Py) / (Qx - Px)
b = a * Px - Py