Signed Distance Function  Box


Signed distance function of a box:The signed distance function of a box with width $w$ and height $h$ is defined as: $$\Phi(\mathbf{x}) = \min(\max(d_x,d_y),0.0) + \left \\begin{pmatrix} \max(d_x,0.0) \\ \max(d_y,0.0) \end{pmatrix} \right \  \text{tolerance},$$ where $$d = \begin{pmatrix} x  x_{\text{box}}  0.5 w \\ y  y_{\text{box}}  0.5 h \end{pmatrix}$$. In the example $\mathbf x$ is the red point, $\mathbf{x}_{\text{box}}$ the blue point and the closest point to $\mathbf x$ on the surface of the sphere is rendered in yellow.Surface normal vectorThe normal vector is approximated using central differences, where the derivative of a function $f(x)$ is approximated by $$ \frac{\partial f(x)}{\partial x} \approx \frac{f(x+\varepsilon)  f(x\varepsilon)}{2\varepsilon}, $$ where $\varepsilon$ is a small constant (in our example $\varepsilon = 10^{6}). Since the normal vector is defined as $$ \mathbf n = \frac{\partial \Phi(\mathbf{x})}{\mathbf x}, $$ the normal can be simply approximated by applying central differences on the x and the ycomponent of the function $\Phi(\mathbf{x})$. Closest point on the surfaceThe closest point $\mathbf s$ on the surface of the box (yellow) can be determined by starting at the point $\mathbf x$ (red) and going by the signed distance in the direction of the negative normal vector: $$\mathbf s = \mathbf x  \Phi(\mathbf{x}) \mathbf n.$$ 