Create angle bisectors in TikZ
Here's how you would do this with tkz-euclide
: \tkzDrawBisector(B,C,D)
\documentclass{standalone}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}
\tkzInit[xmin=-2,xmax=8,ymin=0,ymax=7]
\tkzClip[space=1]
\tkzDefPoint(8,0){A}
\tkzDefPoint(0,7){B}
\tkzDefPoint(-2,0){C}
\tkzDefPointBy[projection=onto A--B](C)
\tkzGetPoint{D}
\tkzDrawPolygon(A,B,C)
\tkzDrawSegment(C,D)
\tkzDrawBisector(B,C,D)
\tkzLabelPoints(A)
\tkzLabelPoints[above right](B,D)
\tkzLabelPoints[below left](C)
\end{tikzpicture}
\end{document}
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xparse}
\usepackage{mathtools}
\usepackage{tikz}
\usetikzlibrary{positioning,calc,intersections}
\usetikzlibrary{through}
\NewDocumentCommand{\bissectrice}{%
O{} % drawing options
mmm % bissector of mmm
m % intersection point between base and bissector
O{1}O{1}% extended drawing of the bissector
}{%
\path[name path=Bis#2#3#4] let
\p1 = ($(#2) - (#3)$),
\p2 = ($(#4) - (#3)$),
\n1 = {veclen(\x1,\y1)} ,
\n2 = {veclen(\x2,\y2)} ,
\n3 = {max(\n1,\n2)},
\p1 = ($(#3)!\n3!(#2)$),
\p2 = ($(#3)!\n3!(#4)$),
\p3 = ($(\p1) + (\p2) - (#3)$)
in
(#3) -- (\p3) ;
\path[name path = foo] (#2)--(#4) ;
\path[name intersections={of=foo and Bis#2#3#4, by=#5}] ;
\path[#1] ($(#3)!#6!(#5)$) -- ($(#5)!#7!(#3)$) ;
}
\begin{document}
\begin{tikzpicture}
\coordinate[label=below left:$C$](C) at (-2,0);
\coordinate[label=below right:$A$](A) at (8,0);
\coordinate[label=above left:$B$] (B) at (0,7);
\coordinate[label=above right:$D$](D) at ($(A)!(C)!(B)$);
\draw (A) -- (B) -- (C) -- cycle;
\draw (C) -- (D);
\bissectrice[draw,blue] {B}{C}{D}{R}[1.1]
\bissectrice[draw,dashed]{D}{B}{C}{S}
\bissectrice[draw,dashed]{C}{D}{B}{T}
\path[name intersections={of=BisBCD and BisDBC, by=O}] ;
\node [draw=red] at (O) [circle through={($(C)!(O)!(B)$)}] {};
\end{tikzpicture}
\end{document}
Old version
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{tikz}
\usetikzlibrary{positioning,calc,intersections}
\newcommand{\bissectrice}[6][]{%
\path[#1] let
\p1 = ($(#3)!1cm!(#2)$),
\p2 = ($(#3)!1cm!(#4)$),
\p3 = ($(\p1) + (\p2) - (#3)$)
in
($(#3)!#6!(\p3)$) -- ($(\p3)!#5!(#3)$) ;
}
\begin{document}
\begin{tikzpicture}
\coordinate[label=below left:$C$](C) at (-2,0);
\coordinate[label=below right:$A$](A) at (8,0);
\coordinate[label=above left:$B$] (B) at (0,7);
\coordinate[label=above right:$D$](D) at ($(A)!(C)!(B)$);
\draw (A) -- (B) -- (C) -- cycle;
\draw (C) -- (D);
\bissectrice[draw,red]{B}{C}{D}{1.5}{4}
\end{tikzpicture}
\end{document}
An inline Asymptote
version:
% bisect.tex
%
\documentclass{article}
\usepackage[inline]{asymptote}
\usepackage{lmodern}
\begin{document}
\begin{figure}
\centering
\begin{asy}
size(7cm);
pen linePen=deepblue+1.2bp, bisectPen=orange+0.8bp;
pair A,B,C,D,E; real CAB,ACD,BCD;
C=(-2,0); A=(8,0); B=(0,7);
CAB=degrees(C-A)-degrees(B-A);
ACD=90-CAB;
D=extension(A,B,C,rotate(ACD,C)*A);
BCD=degrees(B-C)-degrees(D-C);
E=extension(A,B,C,rotate(BCD/2,C)*D);
draw(C--A--B--C--D,linePen);
draw(C--E,bisectPen);
pair[] node={A,B,C,D,E}; string nodename="ABCDE";
pair[] nodepos={
plain.E, plain.N, plain.W, plain.NE, plain.NE,
};
dot(node,UnFill);
for(int i=0;i<node.length;++i)label("$"+substr(nodename,i,1)+"$",node[i],nodepos[i]);
label("$CD\perp AB,\ \angle BCE=\angle ECD$",(A+C)/2,plain.S);
\end{asy}
\caption{Angle bisector with \texttt{Asymptote}}
\end{figure}
\end{document}
%
% To get bisect.pdf, process:
%
% pdflatex bisect.tex
% asy bisect-*.asy
% pdflatex bisect.tex