Для вычисления круга вы можете использовать следующую формулу.
precenttop = (-(cos(ui.value/(100/pi))-1))*50)
percentleft = (sin(ui.value/(100/pi))*50)+50
Затем он должен вращаться по кругу. Значение 201 fo ui
будет в том же положении, что и 1, а -1 равно 199.
Объяснение вышесказанного:
cos(ui.value/(100/pi)) <-- ui value ranges from 0 to 200 but the cosine
period is 2pi so devide the ui value so its
somewhere between 0 and 2pi
-1 <-- result ranges from 1 to -1 and i prefer 0 to 2 so
minus 1 makes it 0 to -2 therefore
-() <-- we invert the whole... now it 0 to 2
*50 <-- since you are using percent 0*50 = 0 and 2*50 = 100
ergo it now bounces between 0 and 100.
Для греха это почти то же самое, за исключением того, что мы хотим, чтобы результат был между -1 и 1. Мы просто умножаем на 50 (от -50 до 50) и добавляем 50 (0 - 100).
Теперь результат для значения ui.value, равного 0 процентам сверху, будет равен 0, а процентам лева будет равно 50. И при
ui.value = 100 50 150 200
top = 100 50 50 0
left = 50 100 0 50
Ergo: круг.