# Check if a point is inside a rectangular shaped area (3D)?

I am having a hard time figuring out if a 3D point lies in a cuboid (like the one in the picture below). I found a lot of examples to check if a point lies inside a rectangle in a 2D space for example this on but none for 3D space.

I have a cuboid in 3D space. This cuboid can be of any size and can have any rotation. I can calculate the vertices $P_1$ to $P_8$ of the cuboid.

Can anyone point me in a direction on how to determine if a point lies inside the cuboid?

The three important directions are $u=P_1-P_2$, $v=P_1-P_4$ and $w=P_1-P_5$. They are three perpendicular edges of the rectangular box.

A point $x$ lies within the box when the three following constraints are respected:

• The dot product $u.x$ is between $u.P_1$ and $u.P_2$
• The dot product $v.x$ is between $v.P_1$ and $v.P_4$
• The dot product $w.x$ is between $w.P_1$ and $w.P_5$

EDIT:
If the edges are not perpendicular, you need vectors that are perpendicular to the faces of the box. Using the cross-product, you can obtain them easily:
$$u=(P_1-P_4)\times(P_1-P_5)\\ v=(P_1-P_2)\times(P_1-P_5)\\ w=(P_1-P_2)\times(P_1-P_4)$$ then check the dot-products as before.

• In the case of perpendicular edges the constraints are that all the three dot products must be valid right not just any one of them? Superb answer by the way Sep 8, 2018 at 10:10
• According to my testing in unity, I had to check if ux is between uP2 & uP1; if vx is between vP4 & vP1; and if wx is between wP5 & wP1 (the inverse order) Dec 14, 2019 at 19:11
• @Empy2 do I need to normalize the direction vectors u,v,w ?
– Kong
Aug 9, 2021 at 14:04
• @Kong No, $ku.x$ is between $ku.P_1$ and $ku.P_2$ whenever $u.x$ is between $u.P_1$ and $u.P_2$ Aug 9, 2021 at 14:26
• Could somebody point me to a source for this? I see that it works, but I want to understand how, and I am not that much into geometry. 2 days ago

Given $p_1,p_2,p_4,p_5$ vertices of your cuboid, and $p_v$ the point to test for intersection with the cuboid, compute: $$\begin{matrix} i=p_2-p_1\\ j=p_4-p_1\\ k=p_5-p_1\\ v=p_v-p_1\\ \end{matrix}$$

then, if $$\begin{matrix} 0<v\cdot i<i\cdot i\\ 0<v\cdot j<j\cdot j\\ 0<v\cdot k<k\cdot k \end{matrix}$$ The point is within the cuboid.

Since 2-D problem is known, divide the problem into 3 parts.

Disregard z-coordinate. If any point is within box bounds $x_2-x_1,y_2-y_1,$ select it and all other such points. Similarly y-z and z-x boxes.

Next choose points that the are common to three selections.