# Drawing angle bisectors in a triangle

In triangle $$\triangle ABC$$, the angle $$\angle BAC$$ is equal to $$60°$$, $$|AB|=2$$, $$|BC|=\sqrt 6$$, and $$AD$$ bisects the angle $$\angle BAC$$ and $$BC$$ at point $$D$$.

How can I find the length of the angle bisector $$AD$$ and draw it?

I have drawn the triangle using the following code:

sol = First@
Solve[{c == 2, a == Sqrt[6],
6 == b^2 + c^2 - 2 b c Cos[60 Degree], {a, b, c} > 0}, {a, b, c}];
{A1, B1, C1} = First@SSSTriangle[a, b, c] /. sol;
labels = {Text[Style[A, FontFamily -> "Times", 15], A1, {2, 0}],
Text[Style[B, FontFamily -> "Times", 15], B1, {-2, 0}],
Text[Style[C, FontFamily -> "Times", 15], C1, {2, -1}]};
Graphics[{FaceForm[], EdgeForm[Black], SSSTriangle[a, b, c] /. sol,
labels}]

• Search the documentation: Names["*" <> # <> "*"] & /@ {"Triangle", "Bisect"} Aug 16, 2023 at 20:18
• @BobHanlon Actually, if one searches "angle bisector", TriangleConstruct will be 2nd entry: reference.wolfram.com/search/?q=angle%20bisector Aug 17, 2023 at 2:03

tri = SSSTriangle[a, b, c] /. sol;


You can use TriangleConstruct and extract the property "AngleBisectingCevian"

angleBisectingCevian = TriangleConstruct[tri, {"AngleBisectingCevian", 1}];

N @ ArcLength @ angleBisectingCevian

2.

D1 = angleBisectingCevian[[1, 2]];

Graphics[{labels, FaceForm[], EdgeForm[Black], tri, Dashed,
angleBisectingCevian, Red, PointSize@Large, Point@D1,
Text[Style[D, FontFamily -> "Times", 15], D1, {-2, 0}]}]


abc = TriangleConstruct[tri, {"AngleBisectingCevian", All}];

Graphics[{labels, FaceForm[], EdgeForm[Black], tri,
Dashed, abc,
Red, PointSize @ Large,
Text[Style[#, FontFamily -> "Times", 15], #2, #3]} &]@
{{a, b, c}, abc[[All, 1, 2]], {{-2, -1}, {2, -1}, {0, 1}}}}]


\$Version

"13.3.0 for Linux x86 (64-bit) (June 3, 2023)"

• TriangleConstruct[tri, {"AngleBisectingCevian", 1}] Does this function require networking to be used? Aug 16, 2023 at 12:26
• it is a documented system function available in versions 12.0+.
– kglr
Aug 16, 2023 at 12:31
• {"AngleBisectingCevian", 1}What is the meaning of parameter 1? Is it the first vertex A representing a triangle? Aug 16, 2023 at 12:48
• right; {"AngleBisectingCevian",p} is cevian bisecting the interior angle at the vertex p.
– kglr
Aug 16, 2023 at 12:50
• @csn899 And this is mentioned in Details section of document of TriangleConstruct, please read the document carefully. Aug 16, 2023 at 13:20

To appreciate and compare the time saved by using Triangleconstruct, here is an alternative answer.

Without TriangleConstruct:

One can use AngleBisector.

tri = Triangle[{A1, B1, C1}];
bisector = AngleBisector[{B1, A1, C1}]; (* Returns InfiniteLine *)
ptD = RegionIntersection[Line[{B1, C1}], bisector][[-1, -1]];
bseg = Line[{A1, ptD}] (* bisector line segment *)
blen = RegionMeasure[bseg]

Graphics[{
{FaceForm[], EdgeForm[Black]
, tri, labels}
, {Dashed, Red, bseg}
, {Blue, AbsolutePointSize[8], Point@ptD}
, {Darker@Green, Thick, Dashed
, Circle[A1, blen
, {-π/30, π/6 + π/5}]
}
, {Text[Style[D, FontFamily -> "Times", 15]
, ptD, {-2, -2}]}
, {Text[Style[Rotate[NumberForm[blen, {2, 2}]
, PlanarAngle[{B1, A1, ptD}]]
, 14]
, Midpoint[bseg], {0.5, -1}]
}
}
]


Or extract the incenter using TriangleConstruct as the three bisectors pass through this point. (see below for a method without using Triangleconstruct)

tri = Triangle[{A1, B1, C1}];
incenter = TriangleConstruct[tri, "Incenter"][[-1]];
ptD = RegionIntersection[InfiniteLine[{A1, incenter}],
Line[{B1, C1}]][[-1, -1]];
bseg = Line[{A1, ptD}]; (* bisector line segment *)
blen = RegionMeasure[bseg];

Graphics[{
{FaceForm[], EdgeForm[Black], tri, labels}
, {Black, PointSize@Large, Point@incenter}
, {Blue, AbsolutePointSize[8], Point@ptD}
, {Thin, Black, InfiniteLine[{A1, incenter}]}
, {Dashed, Gray, InfiniteLine[{B1, incenter}]}
, {Dashed, Gray, InfiniteLine[{C1, incenter}]}
, {Text[Style[D, FontFamily -> "Times", 15]
, ptD, {-2, -2}]}
, {Text[Style[Rotate[NumberForm[blen, {2, 2}]
, PlanarAngle[{B1, A1, ptD}]]
, 14]
, Midpoint[bseg], {0.5, -1}]
}
}
]


To calculate the incenter without TriangleConstruct.

sideab = RegionMeasure[Line[{A1, B1}]]
sidebc = RegionMeasure[Line[{B1, C1}]]
sideac = RegionMeasure[Line[{A1, C1}]]

ic = {sideab, sidebc, sideac} . {C1, A1, B1}/
Total@{sideab, sidebc, sideac}


{1.14128, 0.658919}

ic == incenter


True

Clear[A1, B1, C1, D1, sol,labels];
c = 2;
A1 = {0, 0};
B1 = {c, 0};
C1 = {x, y};
sol = Solve[{EuclideanDistance[B1, C1] == Sqrt[6],
PlanarAngle[{B1, A1, C1}] == π/3}, PositiveReals][[1]];
C1 = {x, y} /. sol // FullSimplify;
b = EuclideanDistance[A1, C1] // FullSimplify;
D1 = b/(b + c)*B1 + c/(b + c)*C1 // FullSimplify;
(* https://en.wikipedia.org/wiki/Angle_bisector_theorem *)

EuclideanDistance[A1, D1]


2

labels = {Text[Style[A, FontFamily -> "Times", 15], A1, {2, 0}],
Text[Style[B, FontFamily -> "Times", 15], B1, {-2, 0}],
Text[Style[C, FontFamily -> "Times", 15], C1, {2, -1}],
Text[Style[D, FontFamily -> "Times", 15], D1, {-2, -1}]};
Graphics[{{FaceForm[], EdgeForm[Black], Triangle[{A1, B1, C1}], Red,
Line[{A1, D1}]}, labels}]


• Using the properties of angular bisectors to find the coordinates of intersection points Aug 16, 2023 at 14:24