У меня есть круг на моем холсте. Положение мыши вычисляется относительно холста. Я хочу, чтобы круг двигался, когда мышь находится на < = расстояние в 100px от него. Минимальное расстояние для начала движения - 100 пикселей, 0,5 пикселя/галочка. Он достигает 2px/tick на расстоянии 20px.Выполнение алгоритма
В принципе, чем ближе мышь к кругу, тем быстрее должен двигаться круг.
То, что я до сих пор движется круг, когда расстояние меньше или равно 100 - (я использую библиотеку easeljs)
function handleTick() {
distance = calculateDistance(circle, mX, mY);
if (distance<=100) {
circle.x += 0.3;
stage.update();
}
}
То, что я хочу
function handleTick() {
distance = calculateDistance(circle, mX, mY);
if (distance<=100) {
circleSpeed = // equation that takes distance and outputs velocity px/tick.
circle.x += circleSpeed;
stage.update();
}
}
Так что я думал это была математическая проблема и опубликовала ее на математическом обмене, но пока ответов нет. Я пробовал по нескольким темам: «как найти уравнение для отношения», так как у меня есть домен (100, 20) и диапазон (0,5, 2). Какая функция может их связывать?
Дело в том, что я плохо разбираюсь в математике, и эти цифры могут даже не иметь отношения - я не уверен, что я ищу здесь.
Должен ли я писать случайный алгоритм «circleSpeed = 2x + 5x;
» и надеяться, что он сделает то, что я хочу? Или можно сделать так, как я, - «Я хочу, чтобы они были минимальными и максимальными значениями, теперь мне нужно придумать уравнение для этого»?
Указатель в правильном направлении был бы замечательным, потому что пока я снимаю в темноте.
Вы собираетесь изменить скорость на 1,5 пикселя на расстоянии 80px -> а изменение 0.01875 пикс скорости на пиксель. – Rishav
вы забыли одну важную информацию: какой должна быть связь между скоростью и расстоянием? линейный, логарифмический, ... – Paul
@Paul вы еще больше запутаете OP с такими терминами: p – Rishav