what is lerp
? I tried watching tutorials but I still don’t get it I looked on the dev hub and i am seeing it a lot and I really want to know what is lerp
? sorry for my grammar
lerp
stands for linear interpolation. It uses a linear function from A to B, where alpha applied is the placement in the linear function. Alpha must be between 0 to 1.
I do not know what linear functions are
Simply in math:
y = kx + m
A linear function is just a straight line that is defined by the equation above. Why don’t you play around with graphs for a little?
what are k and m ???
Those are variables by any number. The numbers are determining the function’s graph in appearance. It doesn’t change the curve, but it does change its offset and the tilt.
so i can decide what k and m are
Yes, but in this case of linear interpolation, the A and B as I have previously mentioned are two different values. If you use linear interpolation, they will shift closer to A or B, linearly. The k
is always 1 and m
is 0. The function’s limit is 1 ≥ x ≥ 0
.
In simple terms, lerp is used to get a point between two other points. For example say we had part1 and part2, we can position apart halfway between them using this.
local Part1 = --
local Part2 = --
local Part3 = Instance.new("Part", workspace)
Part3.CFrame = Part1.CFrame:Lerp(Part2.CFrame,0.5)
The second parameter (in this case 0.5, should be a number between 0 and 1. It is basically saying what percentage we want to lerp with.)
so then what is the point of having k and m ?
That’s for explaining linear function, those doesn’t have to contain anything because that’s all theory. Explanation provided by @XdJackyboiiXd21 is a practical example of that.
so how dose this math help me understand what :lerp
is?
Understanding that concept makes it easier to comprehend on how the function actually works. You can go around Studio and test that line around for fun.
Although it’s math, not a lot of calculating is required to understand its functionality.
so lerp is is a linear function y = kx + m
Not exactly, it is linear interpolation. The difference is that the interpolation is an input of an x
that determines the y
value. The maximum y
and the minimum y
values defined where x
returns a value between them.
Therefore, linear interpolation, or lerp, uses a linear function that returns a value on input of an alpha, which is always between the two values.
so how dose this math connect to the lerp function how dose the parameters effect this
Lerp is interpolation, it can be used in CFrames, Vector3s and Vector2s (I think)
In roblox I believe lerp means approximating a location from the target given the number you specified (0 - 1)
Here is another example of using Lerp. We loop through, starting at 0.1, and ending at 0.9, increasing by 0.1 each time. Then I create a new part each loop and position it that much between the two parts.
local Part1 = game.Workspace:WaitForChild("Part1")
local Part2 = game.Workspace:WaitForChild("Part2")
for i = 0.1, 0.9, 0.1 do
local Part = Instance.new("Part", workspace)
Part.Anchored= true
Part.CFrame = Part1.CFrame:Lerp(Part2.CFrame, i)
local Suface = script.SurfaceGui:Clone()
Suface.TextLabel.Text = i
Suface.Parent = Part
end
Result:
As you can see, lerping by 0.1 creates a part very close to “Part1”, lerping by 0.5 creates a part in between, and lerping 0.9 creates a part very close to Part2
Say
local p1 = Vector3.new(0,10,0)
and
local p2 = Vector3.new(0,0,0)
If you were to lerp these using :Lerp()
, you would do
local l1 = p1:Lerp(p2,0.5)
this would mean l1 = Vector3.new(0,5,0)
becuase 0.5 would be half. Half way bettween p1
and p2
1 would be Vector3.new(0,0,0)
and 0 would be Vector3.new(0,10,0)
. And so on.
can you use :lerp
for things other then CFrame
like Color3