Edit
Here we post the explicit formula which can be used to another lanugage.
According to the Angle bisector theorem,
https://en.wikipedia.org/wiki/Angle_bisector_theorem
we can calculate the point d
on the ab
edge and set dir=c-d
as the direction vector from c
to p
Clear[a,b,c,d,ca,cb,dir];
a = {xa, ya};
b = {xb, yb};
c = {xc, yc};
ca = Sqrt[(xc - xa)^2 + (yc - ya)^2];
cb = Sqrt[(xc - xb)^2 + (yc - yb)^2];
d = cb/(ca + cb) *a + ca/(ca + cb) *b;
dir = c - d;
{xc - (xb *Sqrt[(-xa + xc)^2 + (-ya + yc)^2])/( Sqrt[(-xa + xc)^2 + (-ya + yc)^2] + Sqrt[(-xb + xc)^2 + (-yb + yc)^2]) - ( xa* Sqrt[(-xb + xc)^2 + (-yb + yc)^2])/( Sqrt[(-xa + xc)^2 + (-ya + yc)^2] + Sqrt[(-xb + xc)^2 + (-yb + yc)^2]), yc - (yb *Sqrt[(-xa + xc)^2 + (-ya + yc)^2])/( Sqrt[(-xa + xc)^2 + (-ya + yc)^2] + Sqrt[(-xb + xc)^2 + (-yb + yc)^2]) - ( ya* Sqrt[(-xb + xc)^2 + (-yb + yc)^2])/( Sqrt[(-xa + xc)^2 + (-ya + yc)^2] + Sqrt[(-xb + xc)^2 + (-yb + yc)^2])}
- Now,
p=c+length*Normalize[dir]
, it can be illustrated as below.
rules = Flatten[
Thread /@ {{xa, ya} -> {1.2, 2}, {xb, yb} -> {3, 1}, {xc,
yc} -> {2.1, 1}}];
rules = Flatten[
Thread /@ {{xa, ya} -> RandomReal[{-5, 5}, 2], {xb, yb} ->
RandomReal[{-5, 5}, 2], {xc, yc} -> RandomReal[{-5, 5}, 2]}];
Graphics[{EdgeForm[Blue], FaceForm[],
Triangle[{a, c, b}], {Line[{c, d}]},
Line[{c, c + .5*Normalize[dir]}], Text["a", a, {-1, -1}],
Text["b", b, {-1, -1}], Text["c", c, {-.5, 1}],
Text["d", d, {-2, -1}],
Text["p", c + .5*Normalize[dir], {1, 1}]}] /. rules
Original
Clear[a,b,c,line,dir];
c = {2.1, 1};
a = {1.2, 2};
b = {3, 1};
line = AngleBisector[c -> {a, b}, "Interior"];
dir = line[[2]];
λ = 0.5;
Graphics[{Triangle[{a, b, c}], Red, Line[{c, c - λ*dir}]}]
Clear[λ, bisector, pts];
λ = .5;
bisector[a_, c_, b_] := Module[{line, dir},
line = AngleBisector[c -> {a, b}, "Interior"];
dir = line[[2]];
Line[{c, c - λ*Normalize@dir}]];
pts = {{0, 0}, {3, 2}, {5, 1}, {6, 4}, {10, 3}, {11, 2}, {8, -2}, {7,
0}, {4, -2}};
Graphics[{Line[Partition[pts, 2, 1]], Red,
bisector @@@ Partition[pts, 3, 1]}]
Best Answer
Let $O_1$ is center of circumcircle around $ABO$ and $O_2$ is center of circumcircle around $CBO$. And let $D$ is middle of $AB$ and $E$ is middle of $BC$. Then $\angle AO_1D=\alpha$, $\angle BO_2E=\theta$.
Vector $DO_1$ is vector $AD$ rotated 90$^\circ$ clockwise and scaled by $\cot \alpha$. Then $O_1$ has following coordinates
$$x_{O_1}=\frac{x_A+x_B}{2}+\frac{y_B-y_A}{2}\cot\alpha, y_{O_1}=\frac{y_A+y_B}{2}+\frac{x_A-x_B}{2}\cot\alpha$$
The same consideration for $O_2$ gives:
$$x_{O_2}=\frac{x_B+x_C}{2}+\frac{y_C-y_B}{2}\cot\theta, y_{O_2}=\frac{y_B+y_C}{2}+\frac{x_B-x_C}{2}\cot\theta$$
Triangle $BO_1O_2$ is congruent to $OO_1O_2$ then $O$ is symmetric to $B$ with respect to $O_1O_2$.
Then $$\overrightarrow{O_1O}=2\left(\frac{\overrightarrow{O_1B}\cdot \overrightarrow{O_1O_2}}{\overrightarrow{O_1O_2}\cdot \overrightarrow{O_1O_2}}\right)\overrightarrow{O_1O_2}-\overrightarrow{O_1B}$$
$$x_O=2x_{O_1}+2k(x_{O_2}-x_{O_1})-x_{B},y_O=2y_{O_1}+2k(y_{O_2}-y_{O_1})-y_{B}$$ $$k=\frac{(x_B-x_{O_1})(x_{O_2}-x_{O_1})+(y_B-y_{O_1})(y_{O_2}-y_{O_1})}{(x_{O_2}-x_{O_1})^2+(y_{O_2}-y_{O_1})^2}$$