I’ve never used text in GIMP, but I have used a similar effect and I think the way I did it would be applicable to GIMP. Otherwise, it’s not hard to implement using MetaPost or GNU 3DLDF and then import the results into GIMP.
I used it in one of my first animations: https://www.youtube.com/watch?v=w58wundSwp4
This is a more recent example (the first few seconds): https://www.youtube.com/watch?v=xiP9Bh409i4&list=PLoNa3VjUJ5JjSef2snb4OgkVDgRrzNK_m&index=6
This is an example using a spiral instead of a circle (also the first few seconds): https://www.youtube.com/watch?v=JpnEc6yFWoA&list=PLoNa3VjUJ5JjSef2snb4OgkVDgRrzNK_m&index=7
I also use some other text effects in the last two videos.
There are two ways of doing this with MetaPost or 3DLDF: Either you have the letters (glyphs) as paths and you can find the point at the center of the bounding box of the glyph, or use labels and rotate the label using the respective built-in command. The first way is what I believe would be transferable to GIMP.
First, you rotate the glyph, i.e., the paths that make it up, to the angle you want. This depends on the position on the circle where it’s supposed to go. If its at the right side, it will 90° clockwise, if it’s half-way to the top, 45°, etc. Then you shift (translate) the glyph to the path you want.
Or you could translate first and then rotate. If the paths are centered at the origin, then it’s sometimes easier to perform rotation. If not, the order of operations makes no difference in this case. In general, however, transformations (i.e., matrix multiplications) are not commutative. Edit: I didn’t mean to imply that the operations are commutative in this case; they are not. The rotations would be around different points.
GIMP only works for 2D, so it will be more like MetaPost in this case. That is, you can rotate around a point. In 3DLDF, you have to rotate about an axis. To get the same effect, you rotate about an axis from the point in question to another point, such that the two points determine a line parallel to the z-axis.
The source code for “A Pretty Girl is Like a Melody” is available here: A_Pretty_Girl_is_Like_a_Melody « src - 3dldf.git - 3DLDF
It’s in the Git repository for 3DLDF at Savannah: 3dldf.git - 3DLDF
I would put the source code for “I’ll See You in My Dreams” there, too, if anyone was interested. I don’t know if I can find the source code for the first video.
I tried to find a couple of images with labels that would make this clearer, but wasn’t immediately successful. If this is of interest to you, I could dig something out or make an example.