Занятная штука получилась.
Добавил примитивную регулировку скорости, можно все нужные параметры вывести на горячие клавиши, если надо.
Скрипт не идеален конечно, это видно на малой скорости вращения курсора, или если рисовать круги в Paint'е, но окружность рисует правильную.
WAITMS(500)
$delay = 5 // задержка между перемещениями курсора
$step = 10 // шаг смещения курсора
$radius = 100 // радиус траектории курсора
$center_x = INT($_xmax / 2) // координаты начального положения курсора (центр круга)
$center_y = INT($_ymax / 2) // в данном примере - центр монитора
$sqrt = SQRT($radius)
$x = $center_x
$y = $center_y - $radius
MOVE($x, $y)
WAITMS($delay)
SUB(Регулировка_скорости) // Клавиши "+" и "-"
IF( (ISKEYDOWN(109) = 1) & ($delay < 100) )
INC($delay, 1)
END_IF
IF( (ISKEYDOWN(107) = 1) & ($delay > 0) )
INC($delay, -1)
END_IF
END_SUB
//--------------------------------
WHILE(1)
Регулировка_скорости()
WHILE($x < $center_x + $radius)
INC($x, $step)
$y = INT($center_y - SQRT($radius * $radius - ($center_x - $x) * ($center_x - $x)))
MOVE($x, $y)
WAITMS($delay)
END_CYC
WHILE($x > $center_x)
INC($x, -$step)
$y = INT($center_y + SQRT($radius * $radius - ($center_x - $x) * ($center_x - $x)))
MOVE($x, $y)
WAITMS($delay)
END_CYC
WHILE($x > $center_x - $radius)
INC($x, -$step)
$y = INT($center_y + SQRT($radius * $radius - ($center_x - $x) * ($center_x - $x)))
MOVE($x, $y)
WAITMS($delay)
END_CYC
WHILE($x < $center_x)
INC($x, $step)
$y = INT($center_y - SQRT($radius * $radius - ($center_x - $x) * ($center_x - $x)))
MOVE($x, $y)
WAITMS($delay)
END_CYC
END_CYC
//HALT
UPD: Окружность все таки не совсем правильная получается при рисовании, даже если сделать шаг равным единице.
Первый блин как всегда - комом.