Geometric constructions with tikz

Is it possible to do basic geometric using tikz like angle bisectors, bisection of line segments, inscribed circles, circumscribed circles etc.? More in detail I want a command which takes three points (not on one line) as argument and gives me the (inscribed) circumscribed circle of the triangle defined by this points. Analogously I want a command which takes two points and gives me the bisection of the line segment defined by those points, similar in the case of angle bisection.

-
@user4011: I removed the {geometry} tag because it deals with the package of the same name which can be used to change text block margins (and has nothing to do with TikZ). – lockstep Apr 17 '11 at 19:10
@lockstep: Ok, thanks, I didn't know that. – student Apr 17 '11 at 19:10
Have a look at the calc library of TikZ, but also the intersections and fit libraries should be relevant. They are described in the pgfmanual. – Martin Scharrer Apr 17 '11 at 19:25

tkz-euclide provides commands for many geometric constructions. It is available on Altermundus' site and CTAN. The manual is quite good (except that the command tkzDrawPolygon used in many examples doesn't exist), but only available in French (though even if you don't speak French, you should be able to figure everything out from the examples). I have never used it before, but was able to draw the following in a few minutes:

\documentclass{article}
\usepackage{tkz-euclide}
\begin{document}

\begin{tikzpicture}
% The triangle
\tkzDefPoint(2,2){A}
\tkzDefPoint(5,-2){B}
\tkzDefPoint(1,-2){C}
\tkzDrawSegments(A,B B,C C,A)

% circumcircle
\tkzCircumCenter(A,B,C)\tkzGetPoint{G}
\tkzDrawPoint(G)
\tkzDrawCircle(G,A)

% incircle
\tkzDefCircle[in](A,B,C)\tkzGetPoint{I}\tkzGetLength{rIN}
\tkzDrawPoint(I)
\tkzDrawCircle[R](I,\rIN pt)

\tkzLabelPoints[below](B)
\tkzLabelPoints[below left](C)
\tkzLabelPoints[above left](A,I,G)
\end{tikzpicture}
\end{document}

-
Thanks, it seems to be great! – student Apr 17 '11 at 19:47
yes you need to add \usetkzobj{all}, some objects are not necessary and it's possible to avoid some of them but you need to read the doc to know what you want and what you need. I put this week the source of all my docs on ctan. – Alain Matthes Apr 25 '11 at 6:51