No Image

Угол между двумя отрезками по координатам

1 просмотров
10 марта 2020

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

Решение задач с доказательством.

Для того, чтобы успешно решать задачи методом координат, полезно помнить:

Чтобы задать вектор, проходящий черерз 2 точки, нужно из координат второй точки вычесть координаты первой точки.

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

Задача. Найти координаты и длины векторов AB, BC, AC, если точки имееют координаты А = (5; 8; 3), B = (1; 0; −3), C = (−2; 5; −1).

AB = (1−5; 0-8; −3−3) = (−4; −8; −6)

AC = (−2−5; 5−8; −1−3) = (−7; −3; −4)

BC = (1−(−2); 0−5; −1−3) = (3; −5; −4)

Для нахождения угла между двумя векторами a = (x1; y1; z1) и b = (x2; y2; z2):

Задача. Найдите площадь треугольника, ограниченную точками A = (−4; 4; 4), B = (3; 1; 0), C = (−1; 0; 6).

  1. Находим координаты векторов.
  2. Вычисляем косинус угла между векторами.
  3. Через основное тригометрическое тождество получаем синус.
  4. Подставляем в формулу площади.

AB = (3−(−4); 1−4; 0−4) = (7; −3; −4)

AC = (−1−(−4); 0−4; 6−4) = (3; −4; 2)

Задача. Задайте уравнение плоскости, проходящей через точки A = ( − 4; 4; 4), B = (3; 1; 0), C = ( − 1; 0; 6).

  1. Находим координаты векторов.
  2. Задаем матрицу плоскости.
  3. Вычисляем ее определитель, это и есть уравнение плоскости.

AB = (3−(−4); 1−4; 0−4) = (7; −3; −4)

Первая строчка заполняется переменными x, y, z, и из них вычитаются координаты любой точки плоскости. В данном случае вычитается точка С = ( − 1; 0; 6). Тогда получится такая строка: (x−(−1); y − 0; z−6).

Вторая строчка — координаты первого вектора.

Третья строчка — координаты второго вектора (нет разницы какой из векторов задавать во второй строчке, а какой в третьей).

Читайте также:  Ихерб промокод на скидку

Четвертая заполняется аналогично первой.

Пятая — аналогично второй.

Теперь перемножаем все значения на одном синем отрезке и складываем с другими значениями на других отрезках:

Аналогично делаем с зелеными отрезками:

Осталось из значений синих отрезков вычесть значения зеленых отрезков:

= −22х −26y − 19z + 92

−22х −26y −19z + 92 — искомое уравнение плоскости, проходящей через точки A = (−4; 4; 4), B = (3; 1; 0), C = (−1; 0; 6).

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

Задача. Найдите угол между плоскостью, проходящей через точки A = ( − 4; 4; 4), B = (3; 1; 0), C = ( − 1; 0; 6), и плоскостью, заданную уравнением

14x + 6y − 27z + 51 = 0.

  1. Задаем уравнение плоскости, проходящей через 3 точки ( нашли в предыдущей задаче).
  2. Находим косинус угла между плоскостями ( формула аналогична косинусу угла между прямыми).

Нахождение угла между векторами — самая обычная, часто возникающая задача в компьютерной графике. Пусть, например, нам даны два вектора на плоскости с целыми координатами v1=(x1 , y1 ), v2=(x2 , y2 ). Косинус угла между ними равен Запишем эту формулу в виде выражения на C++:

Здесь (double)x1 приходится писать, чтобы явно указать компилятору, какой именно вариант функции sqrt использовать, а именно — квадратный корень из double.

Проверим: — всё вроде бы сходится. Проверка для самых различных значений x1,y1,x2,y2 дает ожидаемый ответ.

Но давайте найдем угол вектора с самим собой. Конечно, угол должен быть равен 0. Часто так и получается. Но проверим для вектора (2,3) :

Читайте также:  Понижение контроллера домена до рядового сервера

Неужели компьютер сломался? Нет, конечно.

Так почему же? Всё просто.

Как же быть? Да ничего сложного, просто придется функцию несколько усложнить, например так:

Допустим, есть точка (0;1), угол = 0. Это точка отсчета. Вращаю точку вокруг начала координат по часовой стрелке и хочу получить угол от 0 до 360 (он же 0). То есть от точки (-1;0) угол будет равен 270.

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

Комментировать
1 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector