Занятие 7 (2). Уравнения прямых и плоскостей в пространстве.
Поверхность в пространстве рассматривается как геометрическое место точек, удовлетворяющих какому-либо условию. Уравнением поверхности в прямоугольной системе координат называется такое уравнение , которому удовлетворяют координаты каждой точки, принадлежащей поверхности, и не удовлетворяют координаты точек, не принадлежащих этой поверхности. Простейшей поверхностью является плоскость.
Нормальным вектором плоскости называется любой ненулевой вектор, перпендикулярный этой плоскости. Пусть – нормальный вектор плоскости и – фиксированная точка плоскости (см. рис. 1).
Точка пространства принадлежит плоскости тогда и только тогда, когда а значит,
(векторное уравнение плоскости). Из уравнения (1) ввиду того, что мы получаем уравнение плоскости в виде
Для того, чтобы составить уравнение плоскости, обычно находят её нормальный вектор и какую-нибудь точку. После этого записывают уравнение в виде (2). Раскрывая скобки и приводя подобные члены, получают уравнение в виде (3).
Если известны длины отрезков, отсекаемых плоскостью от осей координат, то уравнение плоскости пишется сразу:
(уравнение плоскости “в отрезках”).
В МАТЛАБ плоскость (поверхность) можно изображать с помощью различных функций: plot3(),mesh(),surf(),surfl().Общим для всех этих функций является необходимость использовать функциюmeshgrid. Посмотрите вhelpкак они устроены. А также читайте Кривиёва стр. 153. Последние три функции позволяют добиться большей реалистичности изображения трехмерных графиков.
В примере 1 мы построим плоскость по общему уравнению с помощью этих различных функций. В этом же примере мы познакомимся также с функцией view(,). Прочтите в helpи/или в Кривилёве на стр.151 как она работает.
Пример 1.Построить плоскость, заданную общим уравнением . Вывести обозначения осей заголовок координатного пространства. Изобразить также нормальный вектор к этой прямой, выходящим из начала координат.
Общее уравнение плоскости
% задаем координаты узлов пространственной сетки
% создаем матрицы, содержащие координаты узлов пространственной сетки
% пометим узловые точки круговыми маркерами
% график будет перенасыщен кружочками, попробуйте вывести график без этих кружочков
title('3x + 4y - 4z - 12 = 0')
line([0;3],[0;4],[0;-4], 'LineWidth',4 ) % строим нормальный вектор
line([-5 0 0;5 0 0],[ 0 -5 0;0 5 0],[ 0 0 -5;0 0 5], 'LineWidth',3, 'Color', 'black' )
box on,axis equal, axis square, grid on
% пометим узловые точки круговыми маркерами черного цвета
% график будет перенасыщен кружочками, попробуйте вывести график без этих кружочков
title('3x + 4y - 4z - 12 = 0')
line([0;3],[0;4],[0;-4], 'LineWidth',4 ) % строим нормальный вектор
line([-5 0 0;5 0 0],[ 0 -5 0;0 5 0],[ 0 0 -5;0 0 5], 'LineWidth',3, 'Color', 'black' )
box on,axis equal, axis square, grid on
% пометим узловые точки круговыми маркерами
% график будет перенасыщен кружочками, попробуйте вывести график без этих кружочков
title('3x + 4y - 4z - 12 = 0')
line([0;3],[0;4],[0;-4], 'LineWidth',4 ) % строим нормальный вектор
line([-5 0 0;5 0 0],[ 0 -5 0;0 5 0],[ 0 0 -5;0 0 5], 'LineWidth',3, 'Color', 'black' )
box on,axis equal, axis square, grid on
xlabel('x'), ylabel('y'), zlabel('z')
title('3x + 4y - 4z - 12 = 0')
line([0;3],[0;4],[0;-4], 'LineWidth',4 ) % строим нормальный вектор
line([-5 0 0;5 0 0],[ 0 -5 0;0 5 0],[ 0 0 -5;0 0 5], 'LineWidth',3, 'Color', 'black' )
box on,axis equal, axis square, grid on
shadinginterp%убирает сетку на плоскости и делает плавный переход цвета
title('3x + 4y - 4z - 12 = 0')
line([0;3],[0;4],[0;-4], 'LineWidth',4 ) % строим нормальный вектор
line([-5 0 0;5 0 0],[ 0 -5 0;0 5 0],[ 0 0 -5;0 0 5], 'LineWidth',3, 'Color', 'black' )
box on,axis equal, axis square, grid on
shadinginterp%убирает сетку на плоскости и делает плавный переход цвета
title('3x + 4y - 4z - 12 = 0')
line([0;3],[0;4],[0;-4], 'LineWidth',4 ) % строим нормальный вектор
line([-5 0 0;5 0 0],[ 0 -5 0;0 5 0],[ 0 0 -5;0 0 5], 'LineWidth',3, 'Color', 'black' )
box on,axis equal, axis square, grid on
Для того чтобы проще было понять роль функции meshgridрассмотрим более простой пример 2 с выводом всех табличек на экран.
% задаем координаты узлов пространственной сетки
plot3(X,Y,Z,'or','MarkerSize',8, 'LineWidth',4), box on
xlabel('x'), ylabel('y'), zlabel('z')
title('3x + 4y - 4z - 12 = 0')
% сначала посмотрите программу без view, затем вручную поверните график, так чтобы было видно все 6 узловых точек, в левом нижнем углу графического окна вы увидите нужные
параметры (Az: -65 El: 30) для функции, затем их можно вставить в программу, чтобы картинка выводилась сразу с выигрышной точки обзора.
% массив абсцисс состоит из трех точек
% массив ординат из двух точек
% Двумерный массив Х 2х3 для каждой узловой точки сетки
% Двумерный массив У 2х3 для каждой узловой точки сетки
0.5000 0.5000 0.5000
1.0000 1.0000 1.0000
% Двумерный массив Z 2х3 для значений функции Z=f(X,Y) в каждой узловой точки сетки
% Z=f(X,Y) понимается как функция двух переменных.
-3.2500 -2.5000 -1.7500
-2.7500 -2.0000 -1.2500
Функция plot3 выводит круговые маркеры в узловых точках сетки, в точках с координатами (X,Y,Z).
Функция surfзакрашивает каждую клетку плоскости (поверхности) определенным цветом, который зависит от значений элемента массиваZ. При этом из четырех узловых точек, ограничивающих клетку, выбирается и учитывается минимальная по значению. Изменение цвета на плоскости (поверхности) означает изменение по оси аппликат (высоте, глубине).
Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.