java直线段三角形交点3d

java直线段三角形交点3d,java,geometry,line,intersection,Java,Geometry,Line,Intersection,我已经在这方面工作了很长时间,现在我认为我接近一个解决方案。这是我最不想要的,但它已经到了这个地步。所以我需要做的是取两个点,看看它们所做的线是否与三角形相交,同时也得到它们与三角形相交的点。我放弃了数学,认为j3d可能会帮助我。以下是我对j3d的看法 @SuppressWarnings({ "deprecation"}) public static boolean intersectTrianglePoint(Vector3f p, Vector3f q, Vector3f a, Ve

我已经在这方面工作了很长时间,现在我认为我接近一个解决方案。这是我最不想要的,但它已经到了这个地步。所以我需要做的是取两个点,看看它们所做的线是否与三角形相交,同时也得到它们与三角形相交的点。我放弃了数学,认为j3d可能会帮助我。以下是我对j3d的看法

    @SuppressWarnings({ "deprecation"})
public static boolean intersectTrianglePoint(Vector3f p, Vector3f q, Vector3f a, Vector3f b, Vector3f c) {
    boolean isinside = false;
    //try {
    tri[0] = new Point3d(a.x, a.y, a.z);
    tri[1] = new Point3d(b.x, b.y, b.z);
    tri[2] = new Point3d(c.x, c.y, c.z);

    Point3d p1 = new Point3d(p.x, p.y, p.z);
    Point3d q1 = new Point3d(q.x, q.y, q.z);

    PickSegment line = new PickSegment(p1, q1);

    double[] dist = null;
    dist[0] = 1;

    isinside = Intersect.segmentAndTriangle(line, tri, 0, dist);

    System.out.println(dist[0]);
    //} catch (Exception e) {}

    return isinside;
}
但我得到了这个错误

Exception in thread "main" java.lang.NullPointerException
at com.gopro2027.lwjgl.Triangles.intersectTrianglePoint(Triangles.java:187)
at com.gopro2027.lwjgl.Camera.updateVector(Camera.java:96)
at com.gopro2027.lwjgl.Camera.update(Camera.java:48)
at com.gopro2027.lwjgl.Game.update(Game.java:97)
at com.gopro2027.lwjgl.Game.main(Game.java:60)
第187行是 tri[0]=新点3da.x,a.y,a.z;
但如果有人能给我一个方法,可以得到交叉点,并测试它没有j3d,我会喜欢他们。我尝试了很多在网上找到的东西,但都没有成功。请帮忙。谢谢

您确定所有参数都正确吗!空的

至于数学,你需要光线平面相交。

我知道我做了什么,天哪,我知道这与我设置Point3f[]的方式有关。我需要它是point3f[]=新的point3f[2]。让我试试