Tengo dos puntos en el espacio, L1 y L2 que definen dos puntos en una línea.Intersección de línea/avión basada en los puntos
Tengo tres puntos en el espacio, P1, P2 y P3 que 3 puntos en un avión.
Por lo tanto, dadas estas entradas, ¿en qué punto la línea se cruza con el plano?
Fx. la ecuación en el plano A * x + B * y C * + z + D = 0 es:
A = p1.Y * (p2.Z - p3.Z) + p2.Y * (p3.Z - p1.Z) + p3.Y * (p1.Z - p2.Z)
B = p1.Z * (p2.X - p3.X) + p2.Z * (p3.X - p1.X) + p3.Z * (p1.X - p2.X)
C = p1.X * (p2.Y - p3.Y) + p2.X * (p3.Y - p1.Y) + p3.X * (p1.Y - p2.Y)
D = -(p1.X * (p2.Y * p3.Z - p3.Y * p2.Z) + p2.X * (p3.Y * p1.Z - p1.Y * p3.Z) + p3.X * (p1.Y * p2.Z - p2.Y * p1.Z))
Pero lo que pasa con el resto?
La web ya está llena de ecuaciones para esto, pero no la verdadera ecuación "final" que necesita para encontrar x, y, z. Lo que necesitaba era el conjunto final real de fórmulas simples para obtener x, y, z del resultado. Esta respuesta todavía requiere que uno "resuelva" las ecuaciones, por lo que es solo una parte muy pequeña de la respuesta. Estoy pidiendo una respuesta como: x = [fórmula basada en P1.X, P1.Y, P1.Z, P2.X ... etc] y similares para y y z. –
@Morten Nielsen: La razón de esto es que la "ecuación final" es monstruosa, imposible de entender y se garantiza que ingrese a su programa incorrectamente. Particularmente porque no sé cómo estás representando tus puntos. Pero editaré mi nodo para que la fórmula del producto cruzado sea más explícita para ti. – btilly