Recursion sounds like the right idea, but that alone doesn't cover it. If you want to include things like impact angles things an get pretty complicated. the simple way is to just use the angle as a way of calculating approximate force. using the approximate force and the brittleness you can calculate the size of the initial cracks and the depth of recursion.
If you're really looking into breaking an object along the cracks, Binary Space Partitioning might be something to look into. otherwise, generating textures is probably your best bet.
EDIT In response to your request for an example:
You can take a line, straight or jagged, and pick several points along its length from which to draw other, smaller lines. off of those you can draw yet smaller lines. look into fractals if you want detailed examples. Are you looking for code?