в настоящее время я делаю некоторую логику «увеличить / уменьшить» в php,
и теперь у меня есть некоторые проблемы с масштабированием значения и возвращением его к исходному значению в php (если это применимо к js, это было бы здорово).
вот коды
$scale = 1;
$currentScale = 1;
$position = 50;
$step = 5; // or 10
for($index = 1; $index <= $step; $index++){
echo('-----------------------------------------------------<br>');
$currentScale = $scale / $index;
$position = $position * $currentScale;
$originalPosition = (($scale / $currentScale) * $position) * (($scale / $currentScale) / $scale);
echo('current scale : ' . $currentScale . '<br>');
echo('current position : ' . $position . '<br>');
echo('original position : ' . $originalPosition . '<br>');
}
цель состоит в том, чтобы сделать значение $ originalPosition таким же, как первое значение $ position (для каждого масштаба), я пробовал много формул, но не повезло, надеюсь, что вы, ребята, можете помочь.
заранее спасибо.
хорошо, я думаю, что я нашел решение, я оставлю этот код здесь на случай, если кто-то столкнется с той же проблемой
$scale = 1;
$currentScale = 1;
$position = 80; // change it to any value
$step = 5;
echo('original position : ' . $position . '<br>');
for($i = $step; $i >= 1; $i--){
echo('-----------------------------------------------------<br>');
$currentScale = ($scale / $step) * $i;
$position = $position * $currentScale;
$originalPosition = $position;
$maxLoop = $step - $i;
if($maxLoop){
for($j = $maxLoop; $j >= 0 ; $j--){
$tempScale = $scale - (($scale / $step) * $j);
$originalPosition = $originalPosition / $tempScale;
}
}
echo('max rescale loop : ' . $maxLoop . '<br>');
echo('current scale : ' . $currentScale . ' ( ' . $currentScale * 100 . '% )<br>');
echo('current position : ' . $position . '<br>');
echo('original position : ' . $originalPosition . '<br>');
}
exit;
здесь результат, исходная позиция остается такой же, как исходное значение
Других решений пока нет …