Тема: AHK: Рисование восходящей и нисходящей спирали
Добрый день. Стоит задача шевелить мышкой по спирали. Сначала расширяющуюся а затем сужающуюся, не меняя направления.
Найденное решение расширяющейся спирали:
https://www.autohotkey.com/boards/viewtopic.php?t=58006 решает первую половину проблемы. Если поменять A_Index на обратный отсчет при цикле - получается инвертировать движение мышки. Если поменять местами функции косинуса и синуса - то спираль сужается, но ее начальная точка отсчета сдвигается на 90 градусов относительно точки окончания расширяющейся спирали.
#NoEnv
~1::
cx := 100
cy := 100
r := 20
s := 16
a := 4
global $Pi := 4 * ATan(1)
Loop, % s * a ;расширение
{
retx := cx + r * Cos(tmp * 2 * $Pi / s) * tmp / s
retу := cy + r * Sin(tmp * 2 * $Pi / s) * tmp / s
MouseMove, retx, retу, 3
tmp := A_Index
}
Loop, % s * a ;сужение
{
retx := cx + r * Sin(tmp * 2 * $Pi / s) * tmp / s
retу := cy + r * Cos(tmp * 2 * $Pi / s) * tmp / s
MouseMove, retx, retу, 3
EnvAdd tmp, -1
}
returnА как сделать тоже, но без искажения спирали на переходе от фазы расширения к фазе сужения? Я что то честно говоря в растерянности... Или простой функцией это не сделать, надо на сужении пересчитывать в лоб каждую позицию относительно координат точки на фазе расширения?

