Equation for the points touching a circle.

In the plane $\mathbb R^2$, a point $P$, a point $M$ and the radius $r$ are given.

Suppose, that $|\overrightarrow {PM}|>r$. Then, there exist two tangents from $P$ to the circle with mid point $M$ and the radius $r$. Denote the touching points with $B_1$ and $B_2$.

How can the points $B_1$ and $B_2$ directly be calculated with $P$, $M$ and $r$ ?

What I have done so far :

The triangle $PMB_1$ is right. The right angle is at $B_1$. The height of this triangle over $\overline {PM}$ intersects $\overline {PM}$ in the point $F$. The equation for this point is $\overrightarrow f=(1-\frac{b^2}{c^2})\overrightarrow m+\frac{b^2}{c^2}\overrightarrow p$, where $b=|\overrightarrow {MB_1}|$ and $c=|\overrightarrow {PM}|$ (Is this correct ?)

I also calculated $|\overrightarrow {FB_1}|=\frac{b\sqrt{c^2-b^2}}{c}$ (again : Is this correct ?) So, $B_1$ could be calculated using the normal vector of the line $\overline {PM}$. But is there an easier formula avoiding this normal vector ?

• Anyway, with only points $P,\,M$ one can specify only a point on the line $PM$. In order to extend to the all $\mathbb{R}^2$ plane one should select a basis. – Alexey Burdin Jun 1 '15 at 20:58