Well, the main issue is that you need a "cos" function on your x
coordinate to pair with the "sin" function on the y. Besides that, do
you really want to only translate the letters into place, or would you
want them rotated along the curve?
For the specific case of a cylinder, the text can be rotated and extruded.
For sufficiently large strings of text, the effect is pretty good as is, but
each character is still a linear segment. Intersecting with a
high-resolution cylinder gives a fairly smooth curve over the text as a
Instead of rotating each character separately, render the text into a flat
"stamp", then "emboss" that into a cylinder by rotating the cylinder and
advancing the plate a small amount each time. Intersecting with the cylinder
instead of differencing against it would produce a positive model.
This has the advantage that the error can be arbitrarily minimized, and you
get whatever kerning/character spacing benefits the text system provides
instead of having each character be spaced by an identical amount.
The downside is that it is computationally complex, and I don't think it is
possible to know the horizontal extent of the text string so that has to be
approximated somehow or adjusted until appropriate.