When given three vectors (blue parts), I’m trying to find what the orientation of the grey part will be assuming that the lower left vector is the angle being used. I’m sure there is an easy solution but I’m having trouble figuring it out.

I’m assuming you want the grey line to go through the **middle** of the parts in **2D** space (also called the midpoint):

```
local midPoint = Vector3.new((xPos1 + xPos2) / 2, 0, (yPos1 + yPos2) / 2)
```

Then you’d use `atan2`

to calculate the rotation (`Part`

is the bottom left part):

```
local rotation = math.deg(math.atan2(midPoint.Z - Part.Position.Z, midPoint.X - Part.Position.X))
```

If you want to find a right angle (or perpendicular bisector) so the grey part is always 90 degrees from the slope of the top left and bottom right parts, you’d need to find the opposite slope and calculate the point of intersection and replace `midPoint`

with that value.

```
local intersection = -- The point of intersection
local rotation = math.deg(math.atan2(intersection.Z - Part.Position.Z, intersection.X - Part.Position.X))
```

I don’t have the brainpower to explain how to get point of intersection right now so this website may help:

Make sure you replace the `Y`

coordinate with the `Z`

coordinate as I’m assuming you’re not dealing with the `Y`

coordinate.

2 Likes