Загрузка данных
slot0 = math.pow
slot1 = math.sin
slot2 = math.cos
slot3 = math.pi
slot4 = math.sqrt
slot5 = math.abs
slot6 = math.asin
return {
linear = function (slot0, slot1, slot2, slot3)
return slot2 * slot0 / slot3 + slot1
end,
quad_in = function (slot0, slot1, slot2, slot3)
return slot2 * uv0(slot0 / slot3, 2) + slot1
end,
quad_out = function (slot0, slot1, slot2, slot3)
slot0 = slot0 / slot3
return -slot2 * slot0 * (slot0 - 2) + slot1
end,
quad_in_out = function (slot0, slot1, slot2, slot3)
if slot0 / slot3 * 2 < 1 then
return slot2 / 2 * uv0(slot0, 2) + slot1
else
return -slot2 / 2 * ((slot0 - 1) * (slot0 - 3) - 1) + slot1
end
end,
quad_out_in = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3)
end
end,
cubic_in = function (slot0, slot1, slot2, slot3)
return slot2 * uv0(slot0 / slot3, 3) + slot1
end,
cubic_out = function (slot0, slot1, slot2, slot3)
return slot2 * (uv0(slot0 / slot3 - 1, 3) + 1) + slot1
end,
cubic_in_out = function (slot0, slot1, slot2, slot3)
if slot0 / slot3 * 2 < 1 then
return slot2 / 2 * slot0 * slot0 * slot0 + slot1
else
slot0 = slot0 - 2
return slot2 / 2 * (slot0 * slot0 * slot0 + 2) + slot1
end
end,
cubic_out_in = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3)
end
end,
quart_in = function (slot0, slot1, slot2, slot3)
return slot2 * uv0(slot0 / slot3, 4) + slot1
end,
quart_out = function (slot0, slot1, slot2, slot3)
return -slot2 * (uv0(slot0 / slot3 - 1, 4) - 1) + slot1
end,
quart_in_out = function (slot0, slot1, slot2, slot3)
if slot0 / slot3 * 2 < 1 then
return slot2 / 2 * uv0(slot0, 4) + slot1
else
return -slot2 / 2 * (uv0(slot0 - 2, 4) - 2) + slot1
end
end,
quart_out_in = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3)
end
end,
quint_in = function (slot0, slot1, slot2, slot3)
return slot2 * uv0(slot0 / slot3, 5) + slot1
end,
quint_out = function (slot0, slot1, slot2, slot3)
return slot2 * (uv0(slot0 / slot3 - 1, 5) + 1) + slot1
end,
quint_in_out = function (slot0, slot1, slot2, slot3)
if slot0 / slot3 * 2 < 1 then
return slot2 / 2 * uv0(slot0, 5) + slot1
else
return slot2 / 2 * (uv0(slot0 - 2, 5) + 2) + slot1
end
end,
quint_out_in = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3)
end
end,
sine_in = function (slot0, slot1, slot2, slot3)
return -slot2 * uv0(slot0 / slot3 * uv1 / 2) + slot2 + slot1
end,
sine_out = function (slot0, slot1, slot2, slot3)
return slot2 * uv0(slot0 / slot3 * uv1 / 2) + slot1
end,
sine_in_out = function (slot0, slot1, slot2, slot3)
return -slot2 / 2 * (uv0(uv1 * slot0 / slot3) - 1) + slot1
end,
sine_out_in = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3)
end
end,
expo_in = function (slot0, slot1, slot2, slot3)
if slot0 == 0 then
return slot1
else
return slot2 * uv0(2, 10 * (slot0 / slot3 - 1)) + slot1 - slot2 * 0.001
end
end,
expo_out = function (slot0, slot1, slot2, slot3)
if slot0 == slot3 then
return slot1 + slot2
else
return slot2 * 1.001 * (-uv0(2, -10 * slot0 / slot3) + 1) + slot1
end
end,
expo_in_out = function (slot0, slot1, slot2, slot3)
if slot0 == 0 then
return slot1
end
if slot0 == slot3 then
return slot1 + slot2
end
if slot0 / slot3 * 2 < 1 then
return slot2 / 2 * uv0(2, 10 * (slot0 - 1)) + slot1 - slot2 * 0.0005
else
return slot2 / 2 * 1.0005 * (-uv0(2, -10 * (slot0 - 1)) + 2) + slot1
end
end,
expo_out_in = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3)
end
end,
circ_in = function (slot0, slot1, slot2, slot3)
return -slot2 * (uv0(1 - uv1(slot0 / slot3, 2)) - 1) + slot1
end,
circ_out = function (slot0, slot1, slot2, slot3)
return slot2 * uv0(1 - uv1(slot0 / slot3 - 1, 2)) + slot1
end,
circ_in_out = function (slot0, slot1, slot2, slot3)
if slot0 / slot3 * 2 < 1 then
return -slot2 / 2 * (uv0(1 - slot0 * slot0) - 1) + slot1
else
slot0 = slot0 - 2
return slot2 / 2 * (uv0(1 - slot0 * slot0) + 1) + slot1
end
end,
circ_out_in = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3)
end
end,
elastic_in = function (slot0, slot1, slot2, slot3, slot4, slot5)
if slot0 == 0 then
return slot1
end
if slot0 / slot3 == 1 then
return slot1 + slot2
end
slot6 = nil
if not slot4 or slot4 < uv0(slot2) then
slot4 = slot2
slot6 = (slot5 or slot3 * 0.3) / 4
else
slot6 = slot5 / (2 * uv1) * uv2(slot2 / slot4)
end
slot0 = slot0 - 1
return -(slot4 * uv3(2, 10 * slot0) * uv4((slot0 * slot3 - slot6) * 2 * uv1 / slot5)) + slot1
end,
elastic_out = function (slot0, slot1, slot2, slot3, slot4, slot5)
if slot0 == 0 then
return slot1
end
if slot0 / slot3 == 1 then
return slot1 + slot2
end
slot6 = nil
if not slot4 or slot4 < uv0(slot2) then
slot4 = slot2
slot6 = (slot5 or slot3 * 0.3) / 4
else
slot6 = slot5 / (2 * uv1) * uv2(slot2 / slot4)
end
return slot4 * uv3(2, -10 * slot0) * uv4((slot0 * slot3 - slot6) * 2 * uv1 / slot5) + slot2 + slot1
end,
elastic_in_out = function (slot0, slot1, slot2, slot3, slot4, slot5)
if slot0 == 0 then
return slot1
end
if slot0 / slot3 * 2 == 2 then
return slot1 + slot2
end
slot6 = nil
if not slot4 and not 0 or slot4 < uv0(slot2) then
slot4 = slot2
slot6 = (slot5 or slot3 * 0.44999999999999996) / 4
else
slot6 = slot5 / (2 * uv1) * uv2(slot2 / slot4)
end
if slot0 < 1 then
slot0 = slot0 - 1
return -0.5 * slot4 * uv3(2, 10 * slot0) * uv4((slot0 * slot3 - slot6) * 2 * uv1 / slot5) + slot1
else
slot0 = slot0 - 1
return slot4 * uv3(2, -10 * slot0) * uv4((slot0 * slot3 - slot6) * 2 * uv1 / slot5) * 0.5 + slot2 + slot1
end
end,
elastic_out_in = function (slot0, slot1, slot2, slot3, slot4, slot5)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3, slot4, slot5)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3, slot4, slot5)
end
end,
back_in = function (slot0, slot1, slot2, slot3, slot4)
slot4 = slot4 or 1.70158
slot0 = slot0 / slot3
return slot2 * slot0 * slot0 * ((slot4 + 1) * slot0 - slot4) + slot1
end,
back_out = function (slot0, slot1, slot2, slot3, slot4)
slot4 = slot4 or 1.70158
slot0 = slot0 / slot3 - 1
return slot2 * (slot0 * slot0 * ((slot4 + 1) * slot0 + slot4) + 1) + slot1
end,
back_in_out = function (slot0, slot1, slot2, slot3, slot4)
slot4 = (slot4 or 1.70158) * 1.525
if slot0 / slot3 * 2 < 1 then
return slot2 / 2 * slot0 * slot0 * ((slot4 + 1) * slot0 - slot4) + slot1
else
slot0 = slot0 - 2
return slot2 / 2 * (slot0 * slot0 * ((slot4 + 1) * slot0 + slot4) + 2) + slot1
end
end,
back_out_in = function (slot0, slot1, slot2, slot3, slot4)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3, slot4)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3, slot4)
end
end,
bounce_in = function (slot0, slot1, slot2, slot3)
return slot2 - uv0(slot3 - slot0, 0, slot2, slot3) + slot1
end,
bounce_out = function (slot0, slot1, slot2, slot3)
if slot0 / slot3 < 0.36363636363636365 then
return slot2 * 7.5625 * slot0 * slot0 + slot1
elseif slot0 < 0.7272727272727273 then
slot0 = slot0 - 0.5454545454545454
return slot2 * (7.5625 * slot0 * slot0 + 0.75) + slot1
elseif slot0 < 0.9090909090909091 then
slot0 = slot0 - 0.8181818181818182
return slot2 * (7.5625 * slot0 * slot0 + 0.9375) + slot1
else
slot0 = slot0 - 0.9545454545454546
return slot2 * (7.5625 * slot0 * slot0 + 0.984375) + slot1
end
end,
bounce_in_out = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, 0, slot2, slot3) * 0.5 + slot1
else
return uv1(slot0 * 2 - slot3, 0, slot2, slot3) * 0.5 + slot2 * 0.5 + slot1
end
end,
bounce_out_in = function (slot0, slot1, slot2, slot3)
if slot0 < slot3 / 2 then
return uv0(slot0 * 2, slot1, slot2 / 2, slot3)
else
return uv1(slot0 * 2 - slot3, slot1 + slot2 / 2, slot2 / 2, slot3)
end
end
}