1

This is an illustration of the scenario I have: enter image description here

I have the plane equation of a plane P $(A_px + B_py + C_pz + D_p = 0)$ and the coordinates of points A $(X_a, Y_a, Z_a)$, B $(X_b, Y_b, Z_b)$ and C $(X_c, Y_c, Z_c)$. The plane P will intersect the triangle ABC which will result in creating intersection points D and E. How can I calculate the coordinates for these two new points with the values I have?

delux
  • 125

2 Answers2

0

I like using homogeneous coordinates and the Plücker matrix representation of a line for this since that lets you crank out the answer directly. The Plücker matrix of the line through two points with homogeneous coordinate vectors $\mathbf p$ and $\mathbf q$ is $\mathcal L = \mathbf p \mathbf q^T-\mathbf q \mathbf p^T$. If the homogeneous vector that represents the plane is $\mathbf\pi$, then the intersection of the line and plane is simply $$\mathcal L \mathbf\pi = (\mathbf p \mathbf q^T-\mathbf q \mathbf p^T)\mathbf\pi = (\mathbf q^T \mathbf\pi) \mathbf p - (\mathbf p^T \mathbf\pi) \mathbf q.$$ In other words, multiply each point by the dot product of the plane and the other point, and subtract. To convert back to Cartesian coordinates, you’ll of course have to divide through by the last coordinate of the result. (If the last coordinate is $0$, there’s no intersection.) For this problem, we have in homogeneous coordinates the plane $\mathbf P=[A_p:B_p:C_p:D_p]$, the point $\mathbf A=[X_a:Y_a:Z_a:1]$ and so forth.

This gives you the intersection of the line through a pair of points and the plane, but this intersection point might not lie between the endpoints of the segment. A simple way to test for this is to compare the signs of the dot products of the homogeneous coordinates of the two end points with the plane: if they’re different, then the points lie on opposite sides of the plane, so the line segment will intersect it. If either dot product is zero, then that point lies on the plane. You need these two dot products to compute the intersection point, anyway, so this doesn’t involve any extra work, but I recommend making this test before spending unnecessary time on the rest of the intersection computation.

amd
  • 53,693
0

Complex method:

You can follow this to generate the plane of the triangle. Intersection of the two planes (P and the owner of triangle) will give a line of intersection which will contain D & E. Intersection can be calculated using this.

D and E can be obtained be intersecting the line DE (line if intersection of planes) and the line passing through AC and BC respectively.

Simpler Method:

Get intersection of lines AC and BC with the plane P.

Once you have your equations in parametric form, there are two steps:

Step 1) - Plug in your parametric equations into the equation of the plane, and solve for t

Example:

$x = 2 + t$

$y = 5 + 3t$

$z = 6 + 5t$

$Plane: 3x + 4y - 2z = 7$

Plugging in:

$3(2 + t) + 4(5 + 3t) - 2(6 + 5t) = 7$

$6 + 3t + 20 + 12t - 12 - 10t = 7$

$t = -27/5$

Step 2) - Plug in value of parametric variable (t in this case) into equation of line, to get coordinates of intersection

$x = 2 + t = 2 + -27/5 = -17/5$

$y = 5 + 3t = 5 + 3(-27/5) = -56/5$

$z = 6 + 5t = 6 + 5(-27/5) = -21$

Final intersection point: $(-17/5, -56/5, -21)P$

Hope this helps.

VP Lex
  • 137