You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

空间直线方程求解:过定点且与两条异面直线相交的直线方程求法

How to Find a Line Through a Fixed Point That Intersects Two Skew Lines in 3D Space

Let's walk through two reliable methods to solve this problem—no fancy tricks, just straightforward 3D geometry logic. I'll even include a concrete example to make it stick.

Method 1: Parametric Equations + Collinearity Condition

This approach leverages the fact that the desired line must pass through the fixed point and two intersection points (one on each skew line), so all three points are collinear.

Step 1: Write Parametric Equations for the Skew Lines

First, define the two skew lines using parametric form (this makes it easy to represent any point on them):

  • Let skew line ( L_1 ) pass through ( P_1(x_1,y_1,z_1) ) with direction vector ( \boldsymbol{v_1}=(a_1,b_1,c_1) ):
    x = x₁ + t₁a₁, y = y₁ + t₁b₁, z = z₁ + t₁c₁  (t₁ ∈ ℝ)
    
  • Let skew line ( L_2 ) pass through ( P_2(x_2,y_2,z_2) ) with direction vector ( \boldsymbol{v_2}=(a_2,b_2,c_2) ):
    x = x₂ + t₂a₂, y = y₂ + t₂b₂, z = z₂ + t₂c₂  (t₂ ∈ ℝ)
    
  • Let the fixed point be ( P_0(x_0,y_0,z_0) ).

Step 2: Define Intersection Points

Let ( Q ) be the point where our desired line meets ( L_1 ), so ( Q = (x₁ + t₁a₁, y₁ + t₁b₁, z₁ + t₁c₁) ) for some parameter ( t₁ ).
Let ( R ) be the point where our line meets ( L_2 ), so ( R = (x₂ + t₂a₂, y₂ + t₂b₂, z₂ + t₂c₂) ) for some parameter ( t₂ ).

Step 3: Use Collinearity to Set Up Equations

Since ( P_0, Q, R ) lie on the same line, vectors ( \overrightarrow{P_0Q} ) and ( \overrightarrow{P_0R} ) must be scalar multiples. That means there exists a real number ( λ ) such that:

x₁ + t₁a₁ - x₀ = λ(x₂ + t₂a₂ - x₀)
y₁ + t₁b₁ - y₀ = λ(y₂ + t₂b₂ - y₀)
z₁ + t₁c₁ - z₀ = λ(z₂ + t₂c₂ - z₀)

This is a system of 3 equations with 3 unknowns (( t₁, t₂, λ )). Since ( L_1 ) and ( L_2 ) are skew, this system will have exactly one solution (if a valid line exists).

Step 4: Write the Line Equation

Once you solve for ( t₁ ) (or ( t₂ )), you can get the coordinates of ( Q ) (or ( R )). The desired line is simply the line passing through ( P_0 ) and ( Q ). You can write it in symmetric form:

(x - x₀)/(x_Q - x₀) = (y - y₀)/(y_Q - y₀) = (z - z₀)/(z_Q - z₀)

Method 2: Coplanarity to Find Direction Vector

This method uses the fact that two lines intersect if and only if they are coplanar (lie on the same plane). We'll find the direction vector of our desired line by enforcing coplanarity with both skew lines.

Step 1: Assume the Direction Vector

Let the direction vector of our desired line ( L ) be ( \boldsymbol{s}=(l,m,n) ). The equation of ( L ) through ( P_0 ) is:

(x - x₀)/l = (y - y₀)/m = (z - z₀)/n

(If any component of ( \boldsymbol{s} ) is zero, adjust the form accordingly—e.g., if ( l=0 ), write ( x=x₀ ) and ( (y-y₀)/m=(z-z₀)/n ).)

Step 2: Enforce Coplanarity with ( L_1 )

For ( L ) to intersect ( L_1 ), the vectors ( \overrightarrow{P_0P_1} ), ( \boldsymbol{v_1} ), and ( \boldsymbol{s} ) must be coplanar. Their scalar triple product (determinant) must equal zero:

| x₁ - x₀   y₁ - y₀   z₁ - z₀ |
|   a₁       b₁       c₁     | = 0
|   l        m        n      |

Expanding this determinant gives a linear equation relating ( l, m, n ).

Step 3: Enforce Coplanarity with ( L_2 )

Similarly, for ( L ) to intersect ( L_2 ), the vectors ( \overrightarrow{P_0P_2} ), ( \boldsymbol{v_2} ), and ( \boldsymbol{s} ) must be coplanar. Their scalar triple product is zero:

| x₂ - x₀   y₂ - y₀   z₂ - z₀ |
|   a₂       b₂       c₂     | = 0
|   l        m        n      |

This gives a second linear equation for ( l, m, n ).

Step 4: Solve for Direction Vector Ratio

You now have two linear equations. Solve them to find the proportional values of ( l:m:n ). For example, if you get equations like ( A_1l + B_1m + C_1n = 0 ) and ( A_2l + B_2m + C_2n = 0 ), use substitution or cross-multiplication to find the ratio.

Step 5: Write the Line Equation

Plug the direction vector (using the ratio) into the symmetric or parametric form of the line through ( P_0 ).


Concrete Example

Let's put this into practice:

  • Fixed point ( P_0(1,1,1) )
  • Skew line ( L_1 ): ( x=1+t, y=2-t, z=3+t ) (direction vector ( \boldsymbol{v_1}=(1,-1,1) ))
  • Skew line ( L_2 ): ( x=s, y=2s, z=1+3s ) (direction vector ( \boldsymbol{v_2}=(1,2,3) ))

Using Method 1:

  1. Define ( Q=(1+t,2-t,3+t) ), ( R=(s,2s,1+3s) )
  2. Vectors ( \overrightarrow{P_0Q}=(t,1-t,2+t) ), ( \overrightarrow{P_0R}=(s-1,2s-1,3s) )
  3. Set up collinearity equations:
    t = λ(s-1)
    1-t = λ(2s-1)
    2+t = λ(3s)
    
  4. Solve the system:
    • From first two equations: ( 1 - λ(s-1) = λ(2s-1) ) → ( λ = 1/(3s-2) )
    • Substitute into first equation: ( t=(s-1)/(3s-2) )
    • Plug into third equation: ( 2 + (s-1)/(3s-2) = 3s/(3s-2) ) → ( s=5/4 ), ( t=1/7 ), ( λ=4/7 )
  5. ( Q=(8/7,13/7,22/7) ), so the line equation is:
    (x-1)/1 = (y-1)/6 = (z-1)/15
    

(Verify: this line intersects ( L_1 ) at ( t=1/7 ) and ( L_2 ) at ( s=5/4 ), as expected.)

内容的提问来源于stack exchange,提问作者user531104

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:19:43