Nope. Try again...
I'll explain a bit more - Degree pre-calculates all 360degree positions for a (horizontal) circle, based on starting positions and the distance you want. Saves having to do it yourself, y'see...
You then specify which angle you want the X, Y and Z values from and then just position your object.
The following moves 36 cubes in and out whilst rotating them around a circle.
#constant NUMOBJECTS 36
#constant DISTANCE 125.0
sync on
sync rate 60
type POS
obj as DWORD
p as DWORD
endtype
global dim pos(NUMOBJECTS) as POS
global dist#
global dir#
dist#=70.0:dir#=0.10
createDegreeArray 0.0,0.0,0.0,dist#,CIRCLE_X
for x=1 to NUMOBJECTS
make object cube x,10
color object x,(rnd(255)<<16)+(rnd(255)<<8)+rnd(255)
pos(x).obj=x
pos(x).p=(360/NUMOBJECTS)*x
position object pos(x).obj,returnXPos(pos(x).p),_
returnYPos(pos(x).p),_
returnZPos(pos(x).p)
sync
next x
position camera 0.0,50.0,-215.0
local l as DWORD
do
text 0,0,str$(screen fps())
rotate(1)
sync
loop
function rotate(direction as DWORD)
local l as DWORD
local x as DWORD
createDegreeArray 0.0,0.0,0.0,dist#,CIRCLE_X
for l=1 to NUMOBJECTS
if direction>0
inc pos(l).p,1
else
dec pos(l).p,1
endif
inc dist#,dir#
if dist#>150.0 then dir#=0.0-dir#
if dist#<1.0 then dir#=0.0-dir#
if pos(l).p>360 then pos(l).p=0 else if pos(l).p<0 then pos(l).p=360
position object pos(l).obj,returnXPos(pos(l).p),_
returnYPos(pos(l).p),_
returnZPos(pos(l).p)
next l
endfunction