Axis-aligned cylinder-triangle collisions

Hello.

I’m trying to implement collisions for my player object with arbitrary static triangle-based terrain. The player is approximated with an axis-aligned cylinder.

http://www.formelsamlingen.se/wp-content/uploads/2010/10/rak-cirkular-cylinder.gif

r = radius
h = height

The idea is to implement simple collision detection with arbitrary triangles. I had this idea of finding out how much the cylinder needs to be pushed away along the normal of the triangle to stop it from intersecting the triangle which seems simple enough, but I can’t figure out how to do this, which got me wondering if I’m approaching this problem from the right direction. Does anyone have any good resources for this?