I usually use a radius between 22 and 26, which is done by calling the macro with the radius as a parameter, i.e. /mac circle 22.
Code: Select all
#turbo
Sub Main
/zapvars
/declare CirX global
/declare CirY global
/declare Radius global
/declare diff local
/declare loop local
/varset Radius @Param0
/varset diff $calc(100+@Radius)
/if n $target(id)!=0 {
/varset CirX $target(y)
/varset CirY $target(x)
}
/for loop @Radius to 100
/delay 1
/varset Radius $calc(@diff-@loop)
/call Circle
/next loop
/echo @Radius
:Loop
/call Circle
/goto :Loop
/return
Sub Circle
/if n $distance(@CirX,@CirY)<$calc(@Radius/2) {
/face heading $calc($heading(@CirX,@CirY)+180)
} else {
/face heading $calc($heading(@CirX,@CirY)+$calc(90*$calc(@Radius/$distance(@CirX,@CirY))))
}
/return

