Looks like an interesting project! Here's one possible answer:
sync on
sync rate 60
autocam off
x1#=100
y1#=320
x2#=540
y2#=320
xc#=320
yc#=450
Precision#=70
repeat
cls
set cursor 0,0
print "Where point1 is at ",str$(x1#),",",str$(y1#)," and point2 is at ",str$(x2#),",",str$(y2#)
print "and the Centre is at ",str$(xc#),",",str$(yc#),":"
print "Precision#:",Precision#
print "Up/Down to Edit Precision"
print "Press Enter to try other set-ups"
if keystate(28)
if Enter=0
inc set
endif
Enter=1
else
Enter=0
endif
if set>3 then set=0
if upkey()
inc Precision#
endif
if downkey()
dec Precision#
endif
select set
case 1
x1#=540
y1#=320
x2#=100
y2#=320
xc#=320
yc#=70
endcase
case 2
x1#=320
y1#=100
x2#=320
y2#=380
xc#=100
yc#=240
endcase
case 3
x1#=320
y1#=380
x2#=320
y2#=100
xc#=540
yc#=240
endcase
endselect
circle x1#,y1#,5
circle x2#,y2#,5
circle xc#,yc#,10
CircumferenceArc(x1#,y1#,x2#,y2#,xc#,yc#,Precision#)
sync
until done<>0
function CircumferenceArc(x1#,y1#,x2#,y2#,xc#,yc#,Precision#)
REM First get number of dots
`Get Angle between the two points
r1# = sqrt((x1#-xc#)^2+(y1#-yc#)^2)
r2# = sqrt((x2#-xc#)^2+(y2#-yc#)^2)
angle# = acos(((x1#-xc#)*(x2#-xc#)+(y1#-yc#)*(y2#-yc#))/(r1#*r2#))
`Get circumference of the arc
toRad#=3.141592654/180
c#=angle#*toRad#*r1#
`Get number of full spaces
in=c#/Precision#
`Get space angles
av#=angle#/(c#/Precision#)
`Get remainder angle (and divide by two)
i#=in
re#=(angle#-(av#*i#))/2.0
REM Number of dots
dots=in+1
REM Draw the dots using a dummy 3D cube to get the angles (small cheat)
dummy=1
while object exist(dummy)
inc dummy
endwhile
make object cube dummy, 1
position object dummy, xc#,0,yc#
point object dummy, x1#,0,y1#
a1#=object angle y(dummy)
point object dummy, x2#,0,y2#
a2#=object angle y(dummy)
`Start angle
if Max(a1#,a2#)-Min(a1#,a2#)>180
temp1#=Max(a1#,a2#)-360
temp2#=Min(a1#,a2#)
a1#=temp1#
a2#=temp2#
endif
sa#=Min(a1#,a2#)+re#
`position the dummy at each of the 'dot' positions
yrotate object dummy, sa#
move object dummy, r1#
xs#=object position x(dummy)
ys#=object position z(dummy)
move object dummy, -r1#
circle xs#,ys#,3
for i=1 to in
sa#=sa#+av#
yrotate object dummy, sa#
move object dummy, r1#
xs#=object position x(dummy)
ys#=object position z(dummy)
move object dummy, -r1#
circle xs#,ys#,3
next
delete object dummy
endfunction
Hope it helps!