Ok, here is something I made, you can base something on it.
Oh btw, You can edit string$ to whatever text you want. It auto-algins it!
This is DarkBasic Pro source:
sync on:autocam off:string$="Welcome to DarkBasic Forums!":count=len(string$)
dim strngX(count):dim strngY(count):for i=1 to len(string$)
center text 5,0,mid$(string$,i):get image i,0,0,10,20;cls
next i
for i=1 to len(string$):make object plain i,10,20:texture object i,i
set object i,1,0,0:position object i,i*20-(len(string$)*20)/2,0,0
scale object i,200,200,200:next i
radius=125:position camera 0,100,-200:point camera 0,0,0:make object sphere 65535,radius-5
color object 65535, rgb(125,125,0):ghost object on 65535:backdrop on:color backdrop rgb(0,0,0)
do:a=a-1
for i=1 to len(string$)
strngX(i)=sin(a+i*(360/(len(string$))))*radius
strngY(i)=cos(a+i*(360/(len(string$))))*radius
position object i,StrngX(i),0,strngY(i)
yrotate object i,wrapvalue(atanfull(strngX(i),strngY(i)))
if atanfull(strngX(i),strngY(i))<=5 and atanfull(strngX(i),strngY(i))>=-5 then set object i,1,0,1,0,0,0,0 else set object i,1,0,0,0,1,0,1
next i
position object 65535,0,sin(a)*40,0
sync
loop
"Talk doesn't cook rice." -Chinese proverb