Line of intersection between two planes

后端 未结 6 1522
有刺的猬
有刺的猬 2020-12-01 07:12

How can I find the line of intersection between two planes?

I know the mathematics idea, and I did the cross product between the the planes normal vectors

b

6条回答
  •  暖寄归人
    2020-12-01 07:38

    The cross product of the line is the direction of the intersection line. Now you need a point in the intersection.

    You can do this by taking a point on the cross product, then subtracting Normal of plane A * distance to plane A and Normal of plane B * distance to plane b. Cleaner:

    p = Point on cross product

    intersection point = ([p] - ([Normal of plane A] * [distance from p to plane A]) - ([Normal of plane B] * [distance from p to plane B]))

    Edit:

    You have two planes with two normals:

    N1 and N2
    

    The cross product is the direction of the Intersection Line:

    C = N1 x N2
    

    The class above has a function to calculate the distance between a point and a plane. Use it to get the distance of some point p on C to both planes:

    p = C //p = 1 times C to get a point on C
    d1 = plane1.getDistance(p)
    d2 = plane2.getDistance(p)
    

    Intersection line:

    resultPoint1 = (p - (d1 * N1) - (d2 * N2))
    resultPoint2 = resultPoint1 + C
    

提交回复
热议问题