Vector
Vector์ ๋ํ ์ ๋ณด๋ฅผ ๋ค๋ฃจ๋ ๊ฐ์ฒด์์.
์ฐ์ฐ์
Vector = Vector + Vector
๋ ๋ฒกํฐ ๊ฐ์ ๋ํด์ ๊ทธ ๊ฐ์ ๋ฆฌํดํด์ค์.
Vector = Vector - Vector
์์ ๋ฒกํฐ์์ ๋ค์ ๋ฒกํฐ๋ฅผ ๋บ ๊ฐ์ ๋ฆฌํดํด์ค์.
Vector = Vector * Vector
๋ ๋ฒกํฐ ๊ฐ์ ๊ณฑํด์ ๊ทธ ๊ฐ์ ๋ฆฌํดํด์ค์.
Vector = Vector * number
๋ฒกํฐ์ number ๊ฐ์ ๊ณฑํด์ ๊ทธ ๊ฐ์ ๋ฆฌํดํด์ค์.
Vector = -Vector
๋ฒกํฐ์ ๊ฐ์ ๋ถ์ ์ผ๋ก ๋ง๋ค์ด์ ๊ทธ ๊ฐ์ ๋ฆฌํดํด์ค์.
Vector = Vector + number
๋ฒกํฐ์ ๊ฐ๊ณผ number๊ฐ์ ๋ํด์ ๊ทธ ๊ฐ์ ๋ฆฌํดํด์ค์.
Vector = Vector - number
๋ฒกํฐ์ ๊ฐ์์ number๊ฐ์ ๋บ ๊ฐ์ ๋ฆฌํดํด์ค์.
Vector = Vector / number
๋ฒกํฐ์ ๊ฐ์์ number์ ๋๋ ๊ฐ์ ๋ฆฌํดํด์ค์. (0์ผ๋ก๋ ๋๋ ์ ์์ด์.)
์์ฑ
Size
๋ฒกํฐ์ ํฌ๊ธฐ์์.
-- ์ํ --
local pos = Vector.new(200, -100, 900)
print(pos.Size)
SqrSize
-- ์ํ --
local pos = Vector.new(200, -100, 900)
print(pos.SqrSize)
X
X ์ขํ์์.
Y
Y ์ขํ์์.
Z
Z ์ขํ์์.
-- ์ํ --
local pos1 = Vector.new(1, 2, 3) --pos1.X = 1, pos1.Y = 2, pos1.Z = 3๋ก ํ ๋น๋ผ์.
local pos2 = Vector.new(3) --pos2.X = 3, pos2.Y = 3, pos2.Z = 3๋ก ํ ๋น๋ผ์.
local pos3 = pos1 + pos2 --pos3.X = 4, pos3.Y = 5, pos3.Z = 6๋ก ํ ๋น๋ผ์.
local cube = Workspace.Cube
local cubeTransform = cube.Transform
cubeTransform.Location = Vector.new(400, 0, 100)
cube.Transform = cubeTransform --์ค๋ธ์ ํธ์ ์์น๋ฅผ ์ค์ ํด์.
local pos4 = Vector.new() --pos4.X = 0, pos4.Y = 0, pos4.Z = 0๋ก ํ ๋น๋ผ์.
pos4.X = 10 --pos4.X = 10, pos4.Y = 0, pos4.Z = 0๋ก ํ ๋น๋ผ์.
pos4.Normalize() --pos4.X = 1, pos4.Y = 0, pos4.Z = 0๋ก ํ ๋น๋ผ์.
์์ฑ์
Vector new(number X, number Y, number Z)
Vector๋ฅผ X, Y, Z ์ขํ๊ฐ์ ์ด์ฉํด์ ์์ฑํด์ค์. (์์ฑํ X์ขํ ๊ฐ, ์์ฑํ Y์ขํ ๊ฐ, ์์ฑํ Z์ขํ ๊ฐ)
Vector new(number Value)
Vector๋ฅผ Value๊ฐ์ ์ด์ฉํด์ ์์ฑํด์ค์. (์์ฑํ Value ๊ฐ)
Vector new()
Vector์ X, Y, Z ์ขํ๋ฅผ 0์ผ๋กํด์ ์์ฑํด์ค์.
-- ์ํ --
local pos1 = Vector.new(200, -100, 900)
local pos2 = Vector.new(200) --X = 200, Y = 200, Z = 200์ผ๋ก ํ ๋น๋ผ์.
local pos3 = Vector.new() --์ ๋ถ 0์ผ๋ก ํ ๋น๋ผ์.
ํจ์
void Normalize()
๋จ์๋ฅผ 1๋ก ์ ๊ทํ ์์ผ์ฃผ๋ ํจ์์์.
-- ์ํ --
local pos = Vector.new(200, -100, 900)
print(pos)
pos:Normalize()
print(pos)
number CosineAngle2D(Vector Other)
๋ ๋ฒกํฐ์ XY ํ๋ฉด์ ์ฌ์๊ฐ์ cos ๊ฐ์ ๋ฆฌํดํด์ค์. (์ฌ์๊ฐ์ ๊ตฌํ ๋ฒกํฐ)
-- ์ํ --
local cube = Workspace.Cube
local characterPos = character.Transform.Location
local targetPos = cube.Transform.Location
local angle = characterPos:CosineAngle2D(targetPos)
print(angle)
string ToString(Vector Other)
"R:๊ฐ , G:๊ฐ , B:๊ฐ, A:๊ฐ" ํํ๋ก string ์ ๋ฆฌํดํด์.
-- ์ํ --
local vector = Vector.new(300, 0, 300)
print("Vector : " .. vector:ToString())
number Dot(Vector Other)
other vector ์์ ๋ด์ ๊ฐ์ ๋ฆฌํดํด์.
-- ์ํ --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Dot(otherVector)
print("Vector:Dot : ", result)
vector Cross(Vector Other)
othervector ์์ ์ธ์ ๊ฐ์ ๋ฆฌํดํด์.
-- ์ํ --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Cross(otherVector)
print("Vector:Cross : ", result)
number Distance(Vector Other)
othervector ์์ ๊ฑฐ๋ฆฌ๊ฐ์ ๋ฆฌํดํด์.
-- ์ํ --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Distance(otherVector)
print("Vector:Distance : ", result)
number SqrDistance(Vector Other)
othervector ์์ ๊ฑฐ๋ฆฌ ์ ๊ณฑ๊ฐ์ ๋ฆฌํดํด์.
-- ์ํ --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:SqrDistance(otherVector)
print("Vector:SqrDistance : ", result)
number Angle(Vector Other)
othervector ์์ ์ฌ์ด๊ฐ์ ๋ฆฌํดํด์.
-- ์ํ --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Angle(otherVector)
print("Vector:Angle : ", result)
vector Reflect(Vector Normal)
normal ์ ๋ถ๋ชํ๋ ๋ฐ์ฌ๊ฐ์ ๋ฆฌํดํด์.
-- ์ํ --
local vector = Vector.new(300, 0, 300)
local otherVector = Vector.new(600, 0, 300)
local result = vector:Reflect(otherVector)
print("Vector:Reflect : ", result)
vector Clone()
๊ฐ์ ๋ฒกํฐ๋ฅผ ์๋ก ์์ฑํด์ ๋ฆฌํดํด์.
-- ์ํ --
local Vector1 = Vector.new(100, 100, 100)
local NewVector = Vector1:Clone(Vector1)
print("Clone Vector : ", NewVector)
void SizeLimit(number max)
๋ฒกํฐ์ ํฌ๊ธฐ๋ฅผ max๋ก ์ ํํด์. ((X^2 + Y^2 + Z^2)^(1 / 2)) = Max
-- ์ํ --
local Vector1 = Vector.new(100, 100, 100)
Vector1:SizeLimit(50)
print("Size Limit : ", Vector1)
vector RotateAxisX(number angle)
X์ถ์ ๊ณ ์ ์ผ๋ก ํด์ ๋ฒกํฐ ํ์ ํ ๋ค์ ๋ฆฌํดํด์.
-- ์ํ --
local RotateX = Vector1:RotateAxisX(10)
print("RotateAxisX : ", RotateX)
vector RotateAxisY(number angle)
Y์ถ์ ๊ณ ์ ์ผ๋ก ํด์ ๋ฒกํฐ ํ์ ํ ๋ค์ ๋ฆฌํดํด์.
-- ์ํ --
local RotateY = Vector1:RotateAxisY(10)
print("RotateAxisY : ", RotateY)
vector RotateAxisZ(number angle)
Z์ถ์ ๊ณ ์ ์ผ๋ก ํด์ ๋ฒกํฐ ํ์ ํ ๋ค์ ๋ฆฌํดํด์.
-- ์ํ --
local RotateZ = Vector1:RotateAxisZ(10)
print("RotateAxisZ : ", RotateZ)
number SignedAngle2D(Vector othervector)
othervector ์์ ์ฌ์ด๊ฐ์ ๋ฆฌํดํด์. (์์ ํฌํจ)
-- ์ํ --
local Vector2 = Vector.new(100, 0, 100)
local Vector3 = Vector.new(0, 100, 100)
local SignedAngle = Vector2:SignedAngle2D(Vector3)
print("SignedAngle2D : ", SignedAngle)
vector zero()
zero ๋ฒกํฐ๋ฅผ ๋ฆฌํดํด์. (0,0,0)
-- ์ํ --
local Zero = Vector.zero()
print("Vector Zero : ", Zero)
vector one()
one ๋ฒกํฐ๋ฅผ ๋ฆฌํดํด์. (1,1,1)
-- ์ํ --
local One = Vector.one()
print("Vector One : ", One)
vector forward()
forward ๋ฒกํฐ๋ฅผ ๋ฆฌํดํด์. (1,0,0)
-- ์ํ --
local Forward = Vector.forward()
print("Vector Forward : ", Forward)
vector right()
right ๋ฒกํฐ๋ฅผ ๋ฆฌํดํด์. (0,1,0)
-- ์ํ --
local Right = Vector.right()
print("Vector Right : ", Right)
vector up()
up ๋ฒกํฐ๋ฅผ ๋ฆฌํดํด์. (0,0,1)
-- ์ํ --
local Up = Vector.up()
print("Vector Up : ", Up)
Last updated
Was this helpful?