Ahora mismo estoy trabajando en una librería para encontrar las distancias entre objetos en Lua. He tenido algunos problemas para encontrar la distancia entre un punto y un plano delimitado. Estoy usando estas ecuaciones paramétricas:
$$ \mbox{plane}(s_0,t) = (x_0, y_0, z_0) + s \le(x_1, y_1, z_1) + t(x_2, y_2, z_2), \quad 0 \le (s_0, t) \le 1 $$
y
$$ \mbox{point}(s_1) = (x_3, y_3, z_3) + s(x_4, y_4, z_4), \quad 0 \le s_1 \le 1 $$
Sé que la proyección de un segmento de recta desde cualquier punto del plano hasta el punto del que quiero hallar la distancia sobre la normal del plano me dará la distancia desde un punto a un plano no acotado.
Para intentar resolver mi problema, dije que el punto del plano más cercano a mi punto es mi punto más la inversa de la proyección sobre la normal. Entonces resolvería los valores de s y t para ver si son mayores que uno. Si es así, entonces trataría de encontrar la distancia de los 4 puntos en el plano, y utilizaría la línea entre los dos puntos más cercanos a mi punto para encontrar la distancia entre mi punto y el plano delimitado. Esto es muy ineficiente.
Así que mi pregunta, ¿hay una forma más directa de resolver la distancia entre un punto y una superficie/plano acotado?