Well, I pretty much want to calculate the angle of a raycast, without having to get the angle of the origin, target, etc.
Here’s a quick picture visualizing what I’d like to do:
It’s awful, I know…
Well, I pretty much want to calculate the angle of a raycast, without having to get the angle of the origin, target, etc.
Here’s a quick picture visualizing what I’d like to do:
It’s awful, I know…
I do not really understand which angle you are trying to find. Can you provide a better visual explanation?
Just get the vector direction of the raycast then use atan to solve it. (Assuming it’s on a 2 dimensional plane)
I’m trying to do it with parts, I’ll make a better visual explanation.
You could simply use the CFrame.new constructor
local cf = CFrame.new(pos1, pos2)
Then you can use :ToEulerAngles()
print(cf:ToEulerAngles())
In that case, you subtract the vectors from each other to get your direction then you can do what I said above.
local direction = PartA.Position-PartB.Position
Angle = math.atan(direction.Y/direction.X)
Note that the angle will never be larger than 90 I think.
That is how you can achieve this in the 2D space.
local pos1 = (...);
local pos2 = (...);
local angle = math.atan2(pos2.Z - pos1.Z, pos2.X - pos1.X);
-- // You need to use atan2 because the angles that it returns range from -180 to 180, unlike atan which only ranges from -90 to 90.
@RatiusRat 's solution may work too.