Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Can someone explain the Vector3:Dot(Vector3) function to me?

I'm trying to learn a bit of math here so bare with me, but let's say we have this program:

local vector = Vector3.new(2, 2, 2)
local vector2 = Vector3.new(2, 2, 2)

print(vector:Dot(vector2))

--//Dot equation: P * Q  =  Px * Qx + Py * Qy + Pz * Qz

local Px, Py, Pz = 2, 2, 2
local Qx, Qy, Qz = 2, 2, 2

print((Px * Qx)+(Py * Qy)+(Pz * Qz))


Output: 12 ; Output: 12

I'm tying to figure out what the Dot function actually returns, but I dont really understand what the number means. I understand the equation just fine, I just dont know where to use this.

If someone could give me a use case and a bit more in-depth explanation, that'd be awesome.

1 answer

✓ Accepted answer

Dot product is a scalar unit, not a vector unit, meaning it has no direction.

Dot product of two vectors are calculated by multiplying both vectors length/magnitude and then multiplying with cosine of the angle between the vectors:

One application is detecting orthogonality/perpendicularity of vectors if the dot product is zero. If vectors are perpendicular(angle between them is 90 or 180) then dot product is zero, so you know that they are perpendicular.

If you divide the dot product by the lengths of the vectors, you're left with the cosine of the angle between the vectors, so the arc cosine of this will be the angle.

2 comments

0

How do you find the angle's cosine between the vectors?

0

Based on formula of Dot product Cosine becomes result of the Dot Product divided by product of both vector lengths multiplication. In formula Cos(?) = (aVector · bVector)/ (aVectorLength * bVectorLength)

This discussion is preserved as it was. New answers, comments, and votes are closed.