this is an example...if get angle ..without atanfull ....
i did that for an other question...but...
sync on
autocam off
backdrop off
set camera range 1,90000
sync rate 0
make object sphere 5,50000
color object 5,rgb(255,0,0)
set object 5,1,1,0
dim Coord#(4,2)
dim ang#(2)
make object cone 1,500
position object 1,0,0,0
make object cylinder 2,300
make mesh from object 1,2
delete object 2
add limb 1,1,1
offset limb 1,1,0,200,0
scale limb 1,1,10,400,10
rotate limb 1,1,90,0,0
position camera 0,0,-500
make object cube 2,100
scale object 2,100,500,100
move camera -1000
position object 2,-400,0,0
do
if upkey()=1 then move object 2,5
if downkey()=1 then move object 2,-5
if leftkey()=1 then yrotate object 2,wrapvalue(object angle y(2)-5)
if rightkey()=1 then yrotate object 2,wrapvalue(object angle y(2)+5)
for i=1 to 2
Coord#(i,1)=object position x(i)
Coord#(i,2)=object position z(i)
next i
Dx#=Coord#(2,1)-Coord#(1,1)
Dz#=Coord#(2,2)-Coord#(1,2)
if dz#<>0 then angle#=(Atan(Dx#/Dz#))
rotate limb 1,1,90,0,wrapvalue((-1*angle#)-(object angle y(1)))
set cursor 0,0
print "FPS=",screen fps()
sync
loop