Where my line will intersect this plane? easy:
P1, P2 and P3 are plane points
p1 and p2 are line start and end points
private float X1, Y1, Z1, X2, Y2, Z2, X3, Y3, Z3, x, y, z, x1, y1, z1, x2, y2, z2, A, B, C, D;
public Vector3f getPoint(Vector3f P1, Vector3f P2, Vector3f P3, Vector3f p1, Vector3f p2) {
X1 = P1.getX();
Y1 = P1.getY();
Z1 = P1.getZ();
X2 = P2.getX();
Y2 = P2.getY();
Z2 = P2.getZ();
X3 = P3.getX();
Y3 = P3.getY();
Z3 = P3.getZ();
A = Y2*Z3 - Y2*Z1 - Y1*Z3 - Z2*Y3 + Z2*Y1 + Z1*Y3;
B = - X2*Z3 + X2*Z1 + X1*Z3 + X3*Z2 - X3*Z1 - X1*Z2;
C = X2*Y3 - X3*Y2 - X2*Y1 - X1*Y3 + X3*Y1 + X1*Y2;
D = X3*Y2*Z1 + X1*Z2*Y3 - X1*Y2*Z3 + X2*Y1*Z3 - X2*Z1*Y3 - X3*Z2*Y1;
x1 = p1.getX();
y1 = p1.getY();
z1 = p1.getZ();
x2 = p2.getX();
y2 = p2.getY();
z2 = p2.getZ();
x = -(B*x1*y2-B*y1*x2+C*x1*z2-C*z1*x2-D*x2+D*x1)/(-A*x2+A*x1-B*y2+B*y1-C*z2+C*z1);
y = (x - x1)/(x2 - x1)*(y2 - y1) + y1;
z = (x - x1)/(x2 - x1)*(z2 - z1) + z1;
return new Vector3f(x,y,z);
I haven