Вы находитесь на странице: 1из 3

Вычисление расстояния между двумя прямыми.

В пространстве даны четыре точки:


A(x1, y1, z1), B(x2, y2, z2), C(x3, y3, z3), D(x4, y4, z4).
Найти расстояние между прямыми AB и СD

Отметим четыре условия:


1. точка M(x5, y5, z5) принадлежит прямой AB ;
2. точка N(x6, y6, z6) принадлежит прямой CD ;
3. прямая MN перпендикулярна прямой AB ;
4. прямая MN перпендикулярна прямой СD ;
Тогда длина отрезка MN равна расстоянию между прямыми
AB и СD
1. Векторы AM=(x5-x1, y5-y1, z5-z1) и

AB=(x2-x1, y2-y1, z2-z1)


коллинеарны ;

2. Векторы CN=(x6-x3, y6-y3, z6-z3) и CD=(x4-x3, y4-y3,


z4-z3)
коллинеарны ;

3. Векторы MN=(x6-x5, y6-y5, z6-z5) и AB=(x2-x1, y2-y1,


z2-z1)
ортогональны, и их скалярное произведение равно
нулю ;

4. Векторы MN=(x6-x5, y6-y5, z6-z5) и CD=(x4-x3, y4-y3,


z4-z3)
ортогональны, и их скалярное произведение равно
нулю ;
(x3-x1)*(x2-x1)+n*(x4-x3)*(x2-x1) - m*(x2-x1)*(x2-x1)+
(y3-y1)*(y2-y1)+n*(y4-y3)*(y2-y1) - m*(y2-y1)*(y2-y1)+
(z3-z1)*(z2-z1)+n*(z4-z3)*(z2-z1) - m*(z2-z1)*(z2-z1) = 0

(x3-x1)*(x4-x3)+n*(x4-x3)*(x4-x3) - m*(x2-x1)*(x4-x3)+
(y3-y1)*(y4-y3)+n*(y4-y3)*(y4-y3) - m*(y2-y1)*(y4-y3)+
(z3-z1)*(z4-z3)+n*(z4-z3)*(z4-z3) - m*(z2-z1)*(z4-z3) = 0

Введём обозначения:

P1=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1)
P2=(x2-x1)*(x4-x3)+(y2-y1)*(y4-y3)+(z2-z1)*(z4-z3)
Q1=-((x4-x3)*(x2-x1)+(y4-y3)*(y2-y1)+(z4-z3)*(z2-z1))
Q2=-((x4-x3)*(x4-x3)+(y4-y3)*(y4-y3)+(z4-z3)*(z4-z3))
R1=(x3-x1)*(x2-x1)+(y3-y1)*(y2-y1)+(z3-z1)*(z2-z1)
R2=(x3-x1)*(x4-x3)+(y3-y1)*(y4-y3)+(z3-z1)*(z4-z3)

P1*m+Q1*n=R1
P2*m+Q2*n=R2

m=(Q2*R1-Q1*R2)/(P1*Q2-P2*Q1)

n=(P1*R2-P2*R1)/(P1*Q2-P2*Q1)

Находим координаты точек M(x5, y5, z5) и N(x6, y6, z6)

x5=x1+m*(x2-x1)
y5=y1+m*(y2-y1)
z5=z1+m*(z2-z1)

x6=x3+n*(x4-x3)
y6=y3+n*(y4-y3)
z6=z3+n*(z4-z3)
Длина отрезка MN,
перпендикулярного прямой AB и перпендикулярного
прямой CD,
равна расстоянию между прямыми AB и CD: