So, I got a table with like 20 vector3 positions. How do I get the midpoint of all those positions? I know the mathematical equation for 2 positions, but I am not able to find anything on x positions.
Someone correct me if I’m wrong:
Find the minimum and maximum values for each axis, then just interpolate to the center of each. In the case of Vector3s, it could look like this:
local vectors = {...}
local minX, maxX = math.huge, -math.huge
local minY, maxY = math.huge, -math.huge
local minZ, maxZ = math.huge, -math.huge
for _,v in pairs(vectors) do
if (v.X < minX) then minX = v.X end
if (v.X > maxX) then maxX = v.X end
if (v.Y < minY) then minY = v.Y end
if (v.Y > maxY) then maxY = v.Y end
if (v.Z < minZ) then minZ = v.Z end
if (v.Z > maxZ) then maxZ = v.Z end
end
local minVector = Vector3.new(minX, minY, minZ)
local maxVector = Vector3.new(maxX, maxY, maxZ)
local center = minVector:Lerp(maxVector, 0.5)
I’m aware that there are like 100000 different ways to do the above operations. But I felt it was more clear to write it the way it is.
8 Likes
Thank you. It works.
1 Like