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?