Orient an object relative to another and constrain distance to radius
Objective - Make a cone follow (track) a cylinder's location whilst maintaining a constant distance from it. (as distinct from straight out parenting)

 

A script would be the elegant way to do this but for a quick handcrank job, read on...

The cylinder is the parent of an invisible (green) plane.  The plane's pivot point has been set to one of it's ends so it will always pivot out from the cylinder's center.  It's far end will be a constant distance from the cylinder's center.  



The plane is parented to a vertex placed at the cylinder's center.

This prevents the plane from rotating topsy turvy as the cylinder does but will follow changes in it's location.

The cone is parented to the plane and positioned at it's far end.  It is also rotated to be looking back along the plane's axis and always pointing at the cylinder's center.  

An empty has been placed somewhere central to and above the cylinder's anticipated motion. (along a path in this instance)

The plane is then given a constraint to "Track to" (look at) the Empty.

The empty can be moved about to vary the cone's orientation.