Hi Peter,
The application is an arm holds a roll of rewound material of a given radius. The arm unloads radially onto a trolley which is of fixed height.
We know the length of the rewind arm (hypotenuse) and we know the radius of the roll + our "freefall" distance above the trolley. This is the distance above the trolley that the drive should switch off and allow the arm to coast down. These two dimensions together are the "opposite" side of the triangle.
I guess one way to do it, as you say, is to create a DB which has a range of pre-calculated values of the relevant function. For example, divide the radius range by 255 and then calculate the trig function required for each "segment".
Thanks again,
Martin