Точка пересечения прямых в пространстве онлайн

Угол пересечения прямых

Угол пересечения прямых — это угол пересечения направляющих векторов. Т.е., взяв уже знакомые ранее точки p1 и p2, получим направляющий вектор V(p1,p2), и аналогично второй вектор M(p3,p4). В теории мы должны вычислить достаточно «затратную» функцию, с корнями, квадратами, дробями и арккосинусом.

Давайте не будем останавливаться на ней, она долгая, нудная и в нашем случае ненужная. Рассмотрим вектор:

Рис.4. Вектор V(p1,p2)

α — угол наклона вектора к оси X, который можно найти, как:

α = arctan (A1 / B1)

Где расстояния:

A1 = (y1 — y2)

B1 = (x2 — x1)

Что-то знакомое? Да это ни что иное, как коэффициенты в уравнении прямой от образованных фанатов. Может они и правы в своем испепеляющем фанатизме…

Одним словом, коэффициенты (расстояния) у нас уже есть по обеим прямым.

Рис.5. Пересекающиеся вектор V(p1,p2) и вектор M(p3,p4)

Судя по рисунку, угол между векторами, это сумма углов наклона векторов к оси X. Ммм… не совсем так, на самом деле это разность.

Рис.6. Пересекающиеся векторы в положительной Y

По рисунку явно видно, что угол между векторам это γ = (β — α).

В предыдущем примере все правильно, просто знаки углов разные, т.к. находятся по разные стороны от оси X, а формула работает та же.

Практика 2

В дополнение к функции нахождения точки пересечения, напишем «продвинутую» функцию, которая находит эту точку, определяет нахождение на каждом из отрезков, и определяет угол между направляющими векторами. Или же определяет, что прямые параллельны/совпадают.

//**********************************************************
// Тип пересечения прямых (p1,p2) и (p3,p4)
//**********************************************************
type
TxCrossLineResult = (
xclrEqual = -32// эквивалентны
,xclrParallel = -16// параллельны
,xclrOk = 0 // как минимум пересечение есть
,xclrFirst = 1 // попадает в первый отрезок
,xclrSecond = 2 // попадает во второй отрезок
,xclrBoth = 3 // попадает в оба
,xclrPerpend = 4 // перпендикулярны
// можно найти по маске через AND, но для полноты картины
,xclrFirstP = 5 // перпендикулярны и попадает в первый
,xclrSecondP = 6 // перпендикулярны и попадает в второй
,xclrBothP = 7 // перпендикулярны и попадает в оба
);

//**********************************************************
// Нахождение точки пересечения прямых (p1,p2) и (p3,p4)
// Определяет параллельность, совпадение,
// перпендикулярность, пересечение.
// Определяет, каким отрезкам принадлежит.
// Находит угол(рад.) от (p1,p2) к (p3,p4):
// отрицательное значение — против часовой
// положительное — по часовой
//**********************************************************
function CrossLines(const p1,p2,p3,p4: TxPoint;
var res: TxPoint; var Angle: Extended): TxCrossLineResult;
const
Prec = 0.0001;
var
a1, a2: Extended;
b1, b2: Extended;
c1, c2: Extended;
v: Extended;
begin
Angle := 0;

a1 := p2.y — p1.y;
a2 := p4.y — p3.y;

b1 := p1.x — p2.x;
b2 := p3.x — p4.x;

c1 := p2.x*p1.y — p1.x*p2.y;
c2 := p4.x*p3.y — p3.x*p4.y;

v := a1*b2 — a2*b1;

if abs(v) > Prec then
begin
Result := xclrOk;

res.X := -(c1*b2 — c2*b1)/v;
res.Y := -(a1*c2 — a2*c1)/v;

if CheckCrossPoint(p1,p2,res) then
Result := TxCrossLineResult(Integer(Result) +
Integer(xclrFirst));

if CheckCrossPoint(p3,p4,res) then
Result := TxCrossLineResult(Integer(Result) +
Integer(xclrSecond));

if (abs(a1*a2 + b1*b2) < Prec) then
Result := TxCrossLineResult(Integer(Result) +
Integer(xclrPerpend));

Angle := CalcCrossAngle(a1,b1,a2,b2);
end else
begin
Result := xclrParallel;
if ((abs(c1*b2 — c2*b1) < Prec) and
(abs(a1*c2 — a2*c1) < Prec))
then
Result := xclrEqual;
end;
end;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

//**********************************************************
//  Тип пересечения прямых (p1,p2) и (p3,p4)
//**********************************************************
type

TxCrossLineResult=(

xclrEqual=-32// эквивалентны

,xclrParallel=-16// параллельны

,xclrOk=// как минимум пересечение есть

,xclrFirst=1// попадает в первый отрезок

,xclrSecond=2// попадает во второй отрезок

,xclrBoth=3// попадает в оба

,xclrPerpend=4// перпендикулярны

// можно найти по маске через AND, но для полноты картины

,xclrFirstP=5// перпендикулярны и попадает в первый

,xclrSecondP=6// перпендикулярны и попадает в второй

,xclrBothP=7// перпендикулярны и попадает в оба

);

 
//**********************************************************
//  Нахождение точки пересечения прямых (p1,p2) и (p3,p4)
//  Определяет параллельность, совпадение,
//  перпендикулярность, пересечение.
//  Определяет, каким отрезкам принадлежит.
//  Находит угол(рад.) от (p1,p2) к (p3,p4):
//    отрицательное значение — против часовой
//    положительное — по часовой
//**********************************************************

functionCrossLines(constp1,p2,p3,p4TxPoint;

varresTxPoint;varAngleExtended)TxCrossLineResult;

const

Prec=0.0001;

var

a1,a2Extended;

b1,b2Extended;

c1,c2Extended;

vExtended;

begin

Angle=;

a1=p2.y-p1.y;

a2=p4.y-p3.y;

b1=p1.x-p2.x;

b2=p3.x-p4.x;

c1=p2.x*p1.y-p1.x*p2.y;

c2=p4.x*p3.y-p3.x*p4.y;

v=a1*b2-a2*b1;

ifabs(v)>Prec then

begin

Result=xclrOk;

res.X=-(c1*b2-c2*b1)/v;

res.Y=-(a1*c2-a2*c1)/v;

ifCheckCrossPoint(p1,p2,res)then

Result=TxCrossLineResult(Integer(Result)+

Integer(xclrFirst));

ifCheckCrossPoint(p3,p4,res)then

Result=TxCrossLineResult(Integer(Result)+

Integer(xclrSecond));

if(abs(a1*a2+b1*b2)<Prec)then

Result=TxCrossLineResult(Integer(Result)+

Integer(xclrPerpend));

Angle=CalcCrossAngle(a1,b1,a2,b2);

endelse

begin

Result=xclrParallel;

if((abs(c1*b2-c2*b1)<Prec)and

(abs(a1*c2-a2*c1)<Prec))

then

Result=xclrEqual;

end;

end;

 

Второй способ: пересечение двух прямых

Вместо пересечения отрезков выполним пересечение двух прямых, в результате, если прямые не параллельны, получим какую-то точку, которую надо проверить на принадлежность обоим отрезкам; для этого достаточно проверить, что эта точка принадлежит обоим отрезкам в проекции на ось и на ось .

Если же прямые оказались параллельными, то, если они не совпадают, то отрезки точно не пересекаются. Если же прямые совпали, то отрезки лежат на одной прямой, и для проверки их пересечения достаточно проверить, что пересекаются их проекции на ось и .

Остаётся ещё особый случай, когда один или оба отрезка вырождаются в точки: в таком случае говорить о прямых некорректно, и этот метод будет неприменим (этот случай надо будет разбирать отдельно).

Реализация (без учёта случая вырожденных отрезков):

struct pt {
	int x, y;
};
 
const double EPS = 1E-9;
 
inline int det (int a, int b, int c, int d) {
	return a * d - b * c;
}
 
inline bool between (int a, int b, double c) {
	return min(a,b) <= c + EPS && c <= max(a,b) + EPS;
}
 
inline bool intersect_1 (int a, int b, int c, int d) {
	if (a > b)  swap (a, b);
	if (c > d)  swap (c, d);
	return max(a,c) <= min(b,d);
}
 
bool intersect (pt a, pt b, pt c, pt d) {
	int A1 = a.y-b.y,  B1 = b.x-a.x,  C1 = -A1*a.x - B1*a.y;
	int A2 = c.y-d.y,  B2 = d.x-c.x,  C2 = -A2*c.x - B2*c.y;
	int zn = det (A1, B1, A2, B2);
	if (zn != ) {
		double x = - det (C1, B1, C2, B2) * 1.  zn;
		double y = - det (A1, C1, A2, C2) * 1.  zn;
		return between (a.x, b.x, x) && between (a.y, b.y, y)
			&& between (c.x, d.x, x) && between (c.y, d.y, y);
	}
	else
		return det (A1, C1, A2, C2) ==  && det (B1, C1, B2, C2) == 
			&& intersect_1 (a.x, b.x, c.x, d.x)
			&& intersect_1 (a.y, b.y, c.y, d.y);
}

Здесь сначала вычисляется коэффициент — знаменатель в формуле Крамера. Если , то коэффициенты и прямых пропорциональны, и прямые параллельны или совпадают. В этом случае надо проверить, совпадают они или нет, для чего надо проверить, что коэффициенты прямых пропорциональны с тем же коэффициентом, для чего достаточно вычислить два следующих определителя, если они оба равны нулю, то прямые совпадают:

Если же , то прямые пересекаются, и по формуле Крамера находим точку пересечения и проверяем её принадлежность обоим отрезкам.

Следует отметить, что если исходные координаты точек уже были вещественнозначными, то следует нормировать прямые (т.е. привести их к такому состоянию, что сумма квадратов коэффициентов и равна единице), иначе погрешности при сравнении прямых на параллельность и на совпадение могут оказаться слишком большими.

Взаимное расположение прямых в пространстве

Две прямые  пространства могут:

1) скрещиваться;

2) пересекаться в точке ;

3) быть параллельными ;

4) совпадать.

Случай № 1 принципиально отличается от других случаев. Две прямые скрещиваются, если они не лежат в одной плоскости. Поднимите одну руку вверх, а другую руку вытяните вперёд – вот вам и пример скрещивающихся прямых. В пунктах же № 2-4 прямые обязательно лежат в одной плоскости.

Как выяснить взаимное расположение прямых в пространстве?

Рассмотрим две прямые пространства:

– прямую , заданную точкой  и направляющим вектором ;
– прямую , заданную точкой  и направляющим вектором .

Для лучшего понимания выполним схематический чертёж:
На чертеже в качестве примера изображены скрещивающиеся прямые.

Как разобраться с этими прямыми?

Так как известны точки , то легко найти вектор .

Если прямые скрещиваются, то векторы  не компланарны (см. урок Линейная (не) зависимость векторов. Базис векторов), а, значит, определитель, составленный из их координат, ненулевой. Или, что фактически то же самое, смешанное произведение векторов будет отлично от нуля: .

В случаях № 2-4 наша конструкция «падает» в одну плоскость, при этом векторы  компланарны, а смешанное произведение линейно зависимых векторов равняется нулю: .

Раскручиваем алгоритм дальше. Предположим, что , следовательно, прямые либо пересекаются, либо параллельны, либо совпадают.

Если направляющие векторы  не коллинеарны, то прямые пересекаются. Как проверить два вектора на коллинеарность, подробно рассмотрено в той же статье Линейная (не) зависимость векторов. Базис векторов.

Если направляющие векторы  коллинеарны, то  прямые либо параллельны, либо совпадают. Финальным гвоздём предлагаю следующий приём: берём какую-либо точку одной прямой и подставляем её координаты в уравнение второй прямой; если координаты «подошли», то прямые совпадают, если «не подошли», то прямые параллельны.

Ход алгоритма незатейлив, но практические примеры всё равно не помешают:

Пример 11

Выяснить взаимное расположение двух прямых

Решение: как и во многих задачах геометрии, решение удобно оформить по пунктам:

1) Вытаскиваем из уравнений точки и направляющие векторы:

2) Найдём вектор:

3) Вычислим смешанное произведение векторов:

Таким образом, векторы  компланарны, а значит, прямые  лежат в одной плоскости и могут пересекаться, быть параллельными или совпадать.

4) Проверим направляющие векторы  на коллинеарность.

Составим систему из соответствующих координат данных векторов:

Из каждого уравнения следует, что , следовательно, система совместна, соответствующие координаты векторов пропорциональны, и векторы коллинеарны.

Вывод: прямые  параллельны либо совпадают.

5) Выясним, есть ли у прямых общие точки. Возьмём точку , принадлежащую первой прямой, и подставим её координаты в уравнения прямой :

Таким образом, общих точек у прямых нет, и им ничего не остаётся, как быть параллельными.

Ответ:

Интересный пример для самостоятельного решения:

Пример 12

Выяснить взаимное расположение прямых

Обратите внимание, что у второй прямой в качестве параметра выступает буква. Логично

В общем случае – это же две различные прямые, поэтому у каждой прямой свой параметр.

И снова призываю не пропускать примеры, пороть буду предлагаемые мной задачи далеко не случайны ;-)

Нахождение координат точки пересечения двух прямых в пространстве.

Координаты точки пересечения двух прямых в трехмерном пространстве находятся аналогично.

Пусть пересекающиеся прямые a и b заданы в прямоугольной системе координат Oxyzуравнениями двух пересекающихся плоскостей, то есть,  a определяется системой вида , а прямая b — . Пусть М – точка пересечения прямых a и b. Тогда точка М по определению принадлежит и прямой a и прямойb, следовательно, ее координаты удовлетворяют уравнениям обеих прямых. Таким образом, координаты точки пересечения прямых a и b представляют собой решение системы линейных уравнений вида . Здесь нам пригодится информация из разделарешение систем линейных уравнений, в которых число уравнений не совпадает с числом неизвестных переменных.

Рассмотрим решения примеров.

Пример.

Найдите координаты точки пересечения двух прямых, заданных в пространстве уравнениями  и .

Решение.

Составим систему уравнений из уравнений заданных прямых: . Решение этой системы даст нам искомые координаты точки пересечения прямых в пространстве. Найдем решение записанной системы уравнений.

Основная системы имеет вид , а расширенная — .

Определим ранг матрицы А и ранг матрицы T. Используем метод окаймляющих миноров, при этом не будем подробно описывать вычисление определителей (при необходимости обращайтесь к статье вычисление определителя матрицы):

Таким образом, ранг основной матрицы равен рангу расширенной матрицы и равен трем.

Следовательно, система уравнений  имеет единственное решение.

Базисным минором примем определитель , поэтому из системы уравнений следует исключить последнее уравнение, так как оно не участвует в образовании базисного минора. Итак,

Решение полученной системы легко находится:

Таким образом, точка пересечения прямых  и  имеет координаты (1, -3, 0).

Ответ:

(1, -3, 0).

Следует отметить, что система уравнений  имеет единственное решение тогда и только тогда, когда прямые a и b пересекаются. Если же прямые а и bпараллельные или скрещивающиеся, то последняя система уравнений решений не имеет, так как в этом случае прямые не имеют общих точек. Если прямые a и b совпадают, то они имеют бесконечное множество общих точек, следовательно, указанная система уравнений имеет бесконечное множество решений. Однако в этих случаях мы не можем говорить о нахождении координат точки пересечения прямых, так как прямые не являются пересекающимися.

Таким образом, если мы заранее не знаем, пересекаются заданные прямые a и b или нет, то разумно составить систему уравнений вида  и решить ее методом Гаусса. Если получим единственное решение, то оно будет соответствовать координатам точки пересечения прямых a и b. Если система окажется несовместной, то прямые a и b не пересекаются. Если же система будет иметь бесконечное множество решений, то прямые a и bсовпадают.

Можно обойтись и без использования метода Гаусса. Как вариант, можно вычислить ранги основной и расширенной матриц этой системы, и на основании полученных данных и теоремы Кронекера-Капелли сделать вывод или о существовании единственного решения, или о существовании множества решений, или об отсутствии решений. Это дело вкуса.

Пример.

Если прямые  и  пересекаются, то определите координаты точки пересечения.

Решение.

Составим систему из заданных уравнений: . Решим ее методом Гаусса в матричной форме:

Стало видно, что система уравнений не имеет решений, следовательно, заданные прямые не пересекаются, и не может быть и речи о поиске координат точки пересечения этих прямых.

Ответ:

мы не можем найти координаты точки пересечения заданных прямых, так как эти прямые не пересекаются.

Когда пересекающиеся прямые заданы каноническими уравнениями прямой в пространствеили параметрическими уравнениями прямой в пространстве, то следует сначала получить их уравнения в виде двух пересекающихся плоскостей, а уже после этого находить координаты точки пересечения.

Пример.

Две пересекающиеся прямые заданы в прямоугольной системе координат Oxyzуравнениями  и . Найдите координаты точки пересечения этих прямых.

Решение.

Зададим исходные прямые уравнениями двух пересекающихся плоскостей:

Для нахождения координат точки пересечения прямых осталось решить систему уравнений . Ранг основной матрицы этой системы равен рангу расширенной матрицы и равен трем (рекомендуем проверить этот факт). В качестве базисного минора примем , следовательно, из системы можно исключить последнее уравнение . Решив полученную систему любым методом (например методом Крамера) получаем решение . Таким образом, точка пересечения прямых  и  имеет координаты (-2, 3, -5).

Ответ:

(-2, 3, -5).

Решение

Если две прямые не параллельны, то они пересекаются. Чтобы найти точку пересечения, достаточно составить из двух уравнений прямых систему и решить её:

Пользуясь формулой Крамера, сразу находим решение системы, которое и будет искомой точкой пересечения
:

Если знаменатель нулевой, т.е.

то система решений не имеет (прямые параллельны
и не совпадают) или имеет бесконечно много (прямые совпадают
). Если необходимо различить эти два случая, надо проверить, что коэффициенты прямых пропорциональны с тем же коэффициентом пропорциональности, что и коэффициенты и , для чего достаточно посчитать два определителя, если они оба равны нулю, то прямые совпадают:

Случай двух нелинейных функций

Пример 3
Найти координаты точки пересечения графиков функций: $ f(x)=x^2-2x+1 $ и $ g(x)=x^2+1 $
Решение

Как быть с двумя нелинейными функциями? Алгоритм простой: приравниваем уравнения друг к другу и находим корни:

$$ x^2-2x+1=x^2+1 $$

Разносим по разным сторонам уравнения члены с $ x $ и без него:

$$ x^2-2x-x^2=1-1 $$

Найдена абцисса искомой точки, но её недостаточно. Ещё нехватает ординаты $ y $. Подставляем $ x = 0 $ в любое из двух уравнений условия задачи. Например:

$$ f(0)=0^2-2\cdot 0 + 1 = 1 $$

$ M (0;1) $ — точка пересечения графиков функций

Ответ
$$ M (0;1) $$

Урок из серии «Геометрические алгоритмы»

Здравствуйте, дорогой читатель!

Продолжим знакомиться с геометрическими алгоритмами. На прошлом уроке мы нашли уравнение прямой линии по координатам двух точек. У нас получилось уравнение вида:

Сегодня мы напишем функцию, которая по уравнениям двух прямых линий будет находить координаты их точки пересечения (если такая имеется). Для проверки равенства вещественных чисел, будем использовать специальную функцию RealEq().
Точки на плоскости описываются парой вещественных чисел. При использовании вещественного типа операции сравнения лучше оформить специальными функциями.

Причина известна: на типе Real в системе программирования Паскаль нет отношения порядка, поэтому записи вида a = b, где a и b вещественные числа, лучше не использовать.
Сегодня мы введем в употребление функцию RealEq() для реализации операции “=” (строго равно) :

Function RealEq(Const a, b:Real):Boolean; {строго равно}
begin
RealEq:=Abs(a-b)

Задача. Заданы уравнения двух прямых: и . Найти точку их пересечения.

Решение. Очевидное решение состоит в том, чтобы решить систему уравнений прямых: Давайте перепишем эту системе несколько иначе:
(1)

Введем обозначения: , , . Здесь D – определитель системы, а — определители, получающиеся в результате замены столбца коэффициентов при соответствующем неизвестном столбцом свободных членов. Если , то система (1) является определенной, то есть имеет единственное решение. Это решение можно найти по следующим формулам: , , которые называются формулами Крамера
. Напомню, как вычисляется определитель второго порядка. В определителе различают две диагонали: главную и побочную. Главная диагональ состоит из элементов, взятых по направлению от верхнего левого угла определителя в нижний правый угол. Побочная диагональ – из правого верхнего в нижний левый. Определитель второго порядка равен произведению элементов главной диагонали минус произведение элементов побочной диагонали.

В программном коде для проверки проверка равенства используется функция RealEq(). Вычисления над вещественными числами производятся с точностью до _Eps=1e-7.

Program geom2;
Const _Eps: Real=1e-7;{точность вычислений}
var a1,b1,c1,a2,b2,c2,x,y,d,dx,dy:Real;
Function RealEq(Const a, b:Real):Boolean; {строго равно}
begin
RealEq:=Abs(a-b)

Мы составили программу, с помощью которой можно, зная уравнения линий, найти координаты их точки пересечения.

Переход к параметрическим и каноническим уравнениям прямой в пространстве

Для решения ряда задач проще использовать параметрические уравнения прямой в пространстве вида x=x1+ax·λy=y1+ay·λz=z1+az·λ или канонические уравнения прямой в пространстве вида x=x1+ax·λy=y1+ay·λz=z1+az·λ. В этих уравнениях ax, ay, az — координаты направляющего вектора прямой, x1, y1, z1 — координаты некоторой точки прямой,  а λ — параметр, принимающий произвольные действительные значения.

От уравнения прямой вида A1x+B1y+C1z+D1=A2x+B2y+C2z+D2= можно перейти к каноническим и параметрическим уравнениям прямой линии в пространстве. Для записи канонических и параметрических уравнений прямой нам понадобятся навыки нахождения координат некоторой точки прямой, а также координат некоторого направляющего вектора прямой, заданной уравнениями двух пересекающихся плоскостей.

Рассмотрим написанное выше на примере.

Пример 5

Зададим прямую линию в трехмерной системе координат уравнениями двух пересекающихся плоскостей 2x+y-z-1=x+3y-2z=. Напишем канонические и параметрические уравнения этой прямой.

Решение

Найдем координаты направляющего вектора прямой, который является векторным произведением нормальных векторов n1→=2, 1, -1 плоскости 2x+y-z-1=и n2→=(1, 3, -2) плоскости x+3y-2z=:

a→=n1→×n2→=i→j→k→21-113-2=i→·1·(-2)+j→·(-1)·1+k→·2·3—k→·1·1-j→·2·(-2)-i→·(-1)·3=i→+3·j→+5·k→

Координаты направляющего вектора прямой  a→=(1, 2, 5).

Следующим шагом является определение координат некоторой точки заданной прямой линии, которыми является одно из решений системы уравнений: 2x+y-z-1=x+3y-2z=⇔2x+y-z=1x+3y-2z=.

Возьмем в качестве минорной матрицы системы определитель 2113=2·3-1·1=5 , который отличен от нуля. В этом случае переменная z является свободной. Перенесем слагаемые с ней в правые части каждого уравнения и придаем переменной произвольное значение  λ:

2x+y-z=1x+3y-2z=⇔2x+y=1+zx+3y=2z⇔2x+y=1+λx+3y=2λ, λ∈R 

Применяем для решения полученной системы уравнений метод Крамера:

∆=2113=2·3-1·1=5∆x=1+λ12λ3=(1+λ)·3-1·2λ=3+λ⇒x=∆x∆=3+λ5=35+15·λ∆y=21+λ12λ=2·2λ-(1+λ)·1=-1+3λ⇒y=∆y∆=-1+3λ5=-15+35·λ

Получаем: 2x+y-z-1=x+3y-2z=⇔x=35+15y=-15+35z=λ

Примем λ=2 для того, чтобы получить координаты точки прямой линии: x1=35+15·2y1=-15+35·2z1=2⇔x1=1y1=1z1=2. Теперь мы имеем достаточно данных для того, чтобы записать канонические и параметрические уравнения данной прямой в пространстве: x-x1ax=y-y1ay=z-z1az⇔x-11=y-13=z-25x=x1+ax·λy=y1+ay·λz=z1+az·λ⇔x=1+1·λy=1+3·λz=2+5·λ⇔x=1+λy=1+3·λz=2+5·λ

Ответ:x-11=y-13=z-25 и x=1+λy=1+3·λz=2+5·λ

Данная задача имеет еще один способ решения.

Нахождение координат некоторой точки прямой проводится при решении системы уравнений A1x+B1y+C1z+D1=A2x+B2y+C2z+D2=.

В общем случае ее решения можно записать в виде искомых параметрических уравнений прямой в пространстве x=x1+ax·λy=y1+ay·λz=z1+az·λ.

Получение канонических уравнений проводится следующим образом: решаем каждое из полученных уравнений относительно параметра λ, приравниваем правые части равенства.

x=x1+ax·λy=y1+ay·λz=z1+az·λ⇔λ=x-x1axλ=y-y1ayλ=z-z1az⇔x-x1ax=y-y1ay=z-z1az

Применим данный способ к решению задачи.

Пример 6

Зададим положение прямой линии уравнениями двух пересекающихся плоскостей 2x+y-z-1=x+3y-2z=. Напишем параметрическое и каноническое уравнения для этой прямой линии.

Решение

Решение системы из двух уравнений с тремя неизвестными проводится аналогично тому, как мы делали это в предыдущем примере. Получаем: 2x+y-z-1=x+3y-2z=⇔x=35+15·λy=-15+35·λz=λ.

Это параметрические уравнения прямой в пространстве.

Канонические уравнения получаем следующим образом: x=35+15·λy=-15+35·λz=λ⇔λ=x-3515λ=y+1535λ=z1⇔x-3515=y+1535=z1

Полученные в обоих примерах уравнения отличаются внешне, однако они эквивалентны, так как определяют одно и то же множество точек трехмерного пространства, а следовательно и одну и ту же прямую линию.

Ответ: x-3515=y+1535=z1 и x=35+15·λy=-15+35·λz=λ

Всё ещё сложно?
Наши эксперты помогут разобраться

Все услуги

Решение задач

от 1 дня / от 150 р.

Курсовая работа

от 5 дней / от 1800 р.

Реферат

от 1 дня / от 700 р.

Система уравнений

Как правило, подобная система уравнений решается путем выражения одной переменной через другую, подстановкой во второе уравнение, получая таким образом уравнение одной переменной. Далее переменная находится, подставляется, решается. Или определяется, что система решения не имеет.

Но нас интересует метод Крамера. Потому что с помощью этого метода можно получить сразу значения для обеих переменных, без дополнительных телодвижений.

Сразу же запишем метод под нашу систему.

Имеем следующую систему:

Определители будут такими:

Исходя из метода, решение выглядит так:

Ага! Вот и возможное деление на ноль, скажете вы. И правильно! В этой, в высшей степени непозволительной ситуации, когда знаменатель равен нулю, решения нет, прямые либо параллельны, либо совпадают (что, впрочем, частный случай параллельности).  В коде, естественно, этот момент надо учитывать.

Задачи с прямой в пространстве

В заключительной части урока я постараюсь рассмотреть максимальное количество различных задач с пространственными прямыми. При этом будет соблюдён начатый порядок повествования: сначала мы рассмотрим задачи со скрещивающимися прямыми, затем с пересекающимися прямыми, и в конце поговорим о параллельных прямых в пространстве. Однако должен сказать, что некоторые задачи данного урока можно сформулировать сразу для  нескольких случаев расположения прямых, и в этой связи разбиение раздела на параграфы несколько условно. Есть более простые примеры, есть более сложные примеры, и, надеюсь, каждый найдёт то, что нужно.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мастер по всему
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: