;One full circle
#c::
;Radius is considered as the distance from the origin to circle edge
;with the center square being the origin and considered dimensionless
;From Circle Chart:
; Radius = (Chart#)/2 - 1
outerrad := 10
innerrad := 0
outerEighth("{NumPadDown}","{NumPadUp}","{NumPadRight}","{NumPadLeft}",outerrad)
outerEighth("{NumPadDown}","{NumPadUp}","{NumPadLeft}","{NumPadRight}",outerrad)
outerEighth("{NumPadLeft}","{NumPadRight}","{NumPadUp}","{NumPadDown}",outerrad)
outerEighth("{NumPadLeft}","{NumPadRight}","{NumPadDown}","{NumPadUp}",outerrad)
outerEighth("{NumPadRight}","{NumPadLeft}","{NumPadUp}","{NumPadDown}",outerrad)
outerEighth("{NumPadRight}","{NumPadLeft}","{NumPadDown}","{NumPadUp}",outerrad)
outerEighth("{NumPadUp}","{NumPadDown}","{NumPadLeft}","{NumPadRight}",outerrad)
outerEighth("{NumPadUp}","{NumPadDown}","{NumPadRight}","{NumPadLeft}",outerrad)
innerEighth("{NumPadDown}","{NumPadUp}","{NumPadRight}","{NumPadLeft}",innerrad)
innerEighth("{NumPadDown}","{NumPadUp}","{NumPadLeft}","{NumPadRight}",innerrad)
innerEighth("{NumPadLeft}","{NumPadRight}","{NumPadUp}","{NumPadDown}",innerrad)
innerEighth("{NumPadLeft}","{NumPadRight}","{NumPadDown}","{NumPadUp}",innerrad)
innerEighth("{NumPadRight}","{NumPadLeft}","{NumPadUp}","{NumPadDown}",innerrad)
innerEighth("{NumPadRight}","{NumPadLeft}","{NumPadDown}","{NumPadUp}",innerrad)
innerEighth("{NumPadUp}","{NumPadDown}","{NumPadLeft}","{NumPadRight}",innerrad)
innerEighth("{NumPadUp}","{NumPadDown}","{NumPadRight}","{NumPadLeft}",innerrad)
outerEighth(up,down,left,right,rad)
{
x := 0
y := rad
while y > rad/2
{
dig(up,y)
move(down,y)
dig(right,1)
x++
y := round((sqrt((rad*rad) - (x*x))))
}
move(left,x)
}
innerEighth(up,down,left,right,rad)
{
x := 0
y := rad
while y > rad/2
{
remove(up,y)
move(down,y)
remove(right,1)
x++
y := round((sqrt((rad*rad) - (x*x))))
}
move(left,x)
}
;Utility functions
remove(dir,number)
{
send x
send {Enter}
move(dir, number)
send {Enter}
}
dig(dir,number)
{
send d
send {Enter}
move(dir, number)
send {Enter}
}
move(dir,number)
{
loop {
if number <= 0
{
break
}
send %dir%
number--
}
}
here's the script i used. thinking about it now it was probably due to sticky keys. i'll have to mess around with that later.