-
Notifications
You must be signed in to change notification settings - Fork 0
Sandbox: Lua: Math: Matrix
Аниса edited this page Sep 15, 2022
·
1 revision
Matrices are collection of variables represented in tabular format (Rows & Columns). Often we've have to deal with multiple coordinates when either dealing with general or complex mathematics; Matrices do help a lot to make the workflow easier in such scenarios. Moreover they are also widely used in games for representing element's positional/rotational matrix.
If you still have no idea how useful they are or where to apply/utilize them in the right way, then make sure to read: https://personalpages.manchester.ac.uk/staff/ctdodson/matrices.pdf
local cMatrix1, cMatrix2 = math.matrix({1, 1, 1, 1}, {1, 1, 1, 1}), math.matrix({2, 2, 2, 2}, {2, 2, 2, 2})
local resultant = cMatrix1 + cMatrix2
local cMatrix1, cMatrix2 = math.matrix({1, 1, 1, 1}, {1, 1, 1, 1}), math.matrix({2, 2, 2, 2}, {2, 2, 2, 2})
local resultant = cMatrix1 - cMatrix2
local cMatrix1, cMatrix2 = math.matrix({1, 1, 1, 1}, {1, 1, 1, 1}), math.matrix({2, 2, 2, 2}, {2, 2, 2, 2})
local resultant = cMatrix1 * cMatrix2
local cMatrix1, cMatrix2 = math.matrix({1, 1, 1, 1}, {1, 1, 1, 1}), math.matrix({2, 2, 2, 2}, {2, 2, 2, 2})
local resultant = cMatrix1 / cMatrix2
local string: type = self:getType()
local matrix: cMatrix = math.matrix(
~: ...{~float: ...values}
)
local bool: result = self:destroy()
local matrix: self = self:scale(
float: scale
)
--Note: All coordinates must be offsets, i.e, they must be relative
local matrix: cMatrix = self:transform(
matrix: rotationMatrix,
float: x,
float: y,
float: z
)