With MetaPost, as an complement for whom it may interest. With help from the MetaPost manual and André Heck's MetaPost tutorial for the macros mark_right_angle, draw_mark and tick.
To find the midpoints:
L = .5[A, B]; M = .5[A, C]; N = .5[B, C];
The intersection point is found with implicit equations, as often with MetaPost:
P = whatever[L, L + (B-A) rotated 90] = whatever[N, N + (C-B) rotated 90];
X, Y and Z are built with help of midpoints and numeric parameters over and under (for their positions relatively to P).
X = P + over*unitvector(P-L);
Y = P - under*unitvector(P-M);
Z = P + over*unitvector(P-N);
The whole code:
\documentclass{scrartcl}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\begin{document}
\begin{mplibcode}
vardef mark_right_angle (expr common, endofa, endofb, size) = % right angle mark
save tn ; tn := turningnumber(common -- endofa -- endofb -- cycle) ;
draw ((1, 0) -- (1, 1) -- (0, 1))
zscaled (size*unitvector((1+tn)*endofa + (1-tn)*endofb - 2*common))
shifted common;
enddef ;
vardef draw_mark(expr p, m, size) = % One mark upon a segment
save t, dm; pair dm;
t = arctime m of p;
dm = size*unitvector(direction t of p rotated 90);
draw (-.5dm .. .5dm) shifted (point t of p);
enddef;
vardef tick(expr p, n, size) = % Several marks upon a segment
save midpnt; midpnt = 0.5*arclength(p);
for i = -(n-1)/2 upto (n-1)/2:
draw_mark(p, midpnt+0.6size*i/2, size);
endfor;
enddef;
u := 1cm; over := u; under := 0.75u;
pair A, B, C, L, M, N, P, X, Y, Z; path triangle;
A = origin; B = (12u, 0); C = u*(4, 7);
triangle = A -- B -- C -- cycle;
L = .5[A, B]; M = .5[A, C]; N = .5[B, C];
% Locating the intersection
P = whatever[L, L + (B-A) rotated 90] = whatever[N, N + (C-B) rotated 90];
% Bisectors
X = P + over*unitvector(P-L);
Y = P - under*unitvector(P-M);
Z = P + over*unitvector(P-N);
beginfig(1);
rsize := 2mm; msize := 3mm;
draw triangle; draw L -- X; draw M -- Y; draw N -- Z;
mark_right_angle(L, B, P, rsize); tick(A--L, 2, msize); tick(L--B, 2, msize);
mark_right_angle(M, C, P, rsize); tick(A--M, 1, msize); tick(C--M, 1, msize);
mark_right_angle(N, C, P, rsize); tick(C--N, 3, msize); tick(B--N, 3, msize);
label.llft("$A$", A); label.bot("$B$", B);
label.top("$C$", C); label.rt("$P$", P);
label.llft("$L$", L); label.ulft("$M$", M);
label.urt("$N$", N); label.top("$X$", X);
label.bot("$Y$", Y); label.lft("$Z$", Z);
endfig;
\end{mplibcode}
\end{document}
To be processed with LuaLaTeX:

\tkzDefLine[bisector](A,B),\tkzGetPoint{L}and\tkzDrawSegment(L,X). – Nisal Kevin Kotinkaduwa Feb 18 '15 at 08:35\tkzDefLine[mediator](A,B) \tkzGetPoint{L}, which stems from the French word "médiatrice" (meaning "bisector of a line segment") – Jake Feb 18 '15 at 09:08