Определение угла по координатам точек.

Определение угла по координатам точек.

Итак, начать стоит с того, что Вы поставили некорректное условие, так как угол —

геометрическая фигура, образованная двумя лучами (сторонами угла), выходящими из одной точки (которая называется вершиной угла).

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

В свою же очередь одна единственная прямая проходит через 2 точки => для построения угла требуется части 2-х пересекающихся прямых (с одной общей точкой) => 2 * 2 — 1 = 3 точки

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

Немного теории

Отойдем ненадолго от разъяснений геометрии за N класс средней школы и все таки попытаемся догадаться, что же Вам нужно

Как я понимаю, Вы моделируете движение машины в плоскости xOy . Так как машина движется, она имеет некоторый вектор, характеризующий ее перемещение.

Предположу, что машина выехала из точки (0; 0) => если ее текущие координаты равны (x; y), то вектор перемещения равен < x - 0; y - 0; >=

Однако так как Вам требуется найти угол для поворота машины, Вам бы следовало использовать вектор ее скорости, но Вы нас обделили информацией о нем, так что предположу, что он сонаправлен с вектором перемещения

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

Далее находим направляющий вектор из начала координат в необходимую точку и находим наименьший угол между двумя имеющимися векторами ( a и b ) по формуле:

Пример

Попробуем на примере:

Пусть машина располагается в точке (1; 2.5), а пункт назначения — в точке (3; 3):

Вот мы и получили заветный угол, который примерно равен 23 градусам

На сием курс геометрии окончен, переходим к программной реализации

Реализация

Набросаем такую функцию:

Судя по значениям в Вашем примере, которые явно больше единицы, Вы используете не радианную, а градусную меру, а посему значение, которое вернет Вам функция, необходимо будет преобразовать по формуле:

Пусть машина располагается в точке (-3; -3), а пункт назначения — в точке (3; 3):

180 градусов, что, очевидно, является чистейшей правдой!

Итоги

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

Чего-то не знаете? Читайте и узнавайте по теме как можно больше!

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

Читать еще:  Сильная молитва на удачу в делах. Христианские молитвы на удачу

Определение угла по координатам точек.

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

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

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

Чтобы задать вектор, проходящий черерз 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. Находим косинус угла между плоскостями ( формула аналогична косинусу угла между прямыми).

Нахождение угла между векторами

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

Для рассмотрения понятия угла между векторами обратимся к графической иллюстрации: зададим на плоскости или в трехмерном пространстве два вектора a → и b → , являющиеся ненулевыми. Зададим также произвольную точку O и отложим от нее векторы O A → = b → и O B → = b →

Углом между векторами a → и b → называется угол между лучами О А и О В .

Полученный угол будем обозначать следующим образом: a → , b → ^

Очевидно, что угол имеет возможность принимать значения от 0 до π или от 0 до 180 градусов.

a → , b → ^ = 0 , когда векторы являются сонаправленными и a → , b → ^ = π , когда векторы противоположнонаправлены.

Векторы называются перпендикулярными, если угол между ними равен 90 градусов или π 2 радиан.

Если хотя бы один из векторов является нулевым, то угол a → , b → ^ не определен.

Нахождение угла между векторами

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

Согласно определению скалярное произведение есть a → , b → = a → · b → · cos a → , b → ^ .

Если заданные векторы a → и b → ненулевые, то можем разделить правую и левую части равенства на произведение длин этих векторов, получая, таким образом, формулу для нахождения косинуса угла между ненулевыми векторами:

cos a → , b → ^ = a → , b → a → · b →

Данная формула используется, когда в числе исходных данных есть длины векторов и их скалярное произведение.

Исходные данные: векторы a → и b → . Длины их равны 3 и 6 соответственно, а их скалярное произведение равно — 9 . Необходимо вычислить косинус угла между векторами и найти сам угол.

Решение

Исходных данных достаточно, чтобы применить полученную выше формулу, тогда cos a → , b → ^ = — 9 3 · 6 = — 1 2 ,

Теперь определим угол между векторами: a → , b → ^ = a r c cos ( — 1 2 ) = 3 π 4

Ответ: cos a → , b → ^ = — 1 2 , a → , b → ^ = 3 π 4

Читать еще:  Что несет имя александр. Имя Саша: значение и тайна имени

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

Длина вектора определяется как корень квадратный из суммы квадратов его координат, а скалярное произведение векторов равно сумме произведений соответствующих координат. Тогда формула для нахождения косинуса угла между векторами на плоскости a → = ( a x , a y ) , b → = ( b x , b y ) выглядит так:

cos a → , b → ^ = a x · b x + a y · b y a x 2 + a y 2 · b x 2 + b y 2

А формула для нахождения косинуса угла между векторами в трехмерном пространстве a → = ( a x , a y , a z ) , b → = ( b x , b y , b z ) будет иметь вид: cos a → , b → ^ = a x · b x + a y · b y + a z · b z a x 2 + a y 2 + a z 2 · b x 2 + b y 2 + b z 2

Исходные данные: векторы a → = ( 2 , 0 , — 1 ) , b → = ( 1 , 2 , 3 ) в прямоугольной системе координат. Необходимо определить угол между ними.

Решение

  1. Для решения задачи можем сразу применить формулу:

cos a → , b → ^ = 2 · 1 + 0 · 2 + ( — 1 ) · 3 2 2 + 0 2 + ( — 1 ) 2 · 1 2 + 2 2 + 3 2 = — 1 70 ⇒ a → , b → ^ = a r c cos ( — 1 70 ) = — a r c cos 1 70

  1. Также можно определить угол по формуле:

cos a → , b → ^ = ( a → , b → ) a → · b → ,

но предварительно рассчитать длины векторов и скалярное произведение по координатам: a → = 2 2 + 0 2 + ( — 1 ) 2 = 5 b → = 1 2 + 2 2 + 3 2 = 14 a → , b → ^ = 2 · 1 + 0 · 2 + ( — 1 ) · 3 = — 1 cos a → , b → ^ = a → , b → ^ a → · b → = — 1 5 · 14 = — 1 70 ⇒ a → , b → ^ = — a r c cos 1 70

Ответ: a → , b → ^ = — a r c cos 1 70

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

Исходные данные: на плоскости в прямоугольной системе координат заданы точки A ( 2 , — 1 ) , B ( 3 , 2 ) , C ( 7 , — 2 ) . Необходимо определить косинус угла между векторами A C → и B C → .

Решение

Найдем координаты векторов по координатам заданных точек A C → = ( 7 — 2 , — 2 — ( — 1 ) ) = ( 5 , — 1 ) B C → = ( 7 — 3 , — 2 — 2 ) = ( 4 , — 4 )

Теперь используем формулу для определения косинуса угла между векторами на плоскости в координатах: cos A C → , B C → ^ = ( A C → , B C → ) A C → · B C → = 5 · 4 + ( — 1 ) · ( — 4 ) 5 2 + ( — 1 ) 2 · 4 2 + ( — 4 ) 2 = 24 26 · 32 = 3 13

Ответ: cos A C → , B C → ^ = 3 13

Угол между векторами можно определить по теореме косинусов. Отложим от точки O векторы O A → = a → и O B → = b → , тогда, согласно теореме косинусов в треугольнике О А В , будет верным равенство:

A B 2 = O A 2 + O B 2 — 2 · O A · O B · cos ( ∠ A O B ) ,

b → — a → 2 = a → + b → — 2 · a → · b → · cos ( a → , b → ) ^

и отсюда выведем формулу косинуса угла:

cos ( a → , b → ) ^ = 1 2 · a → 2 + b → 2 — b → — a → 2 a → · b →

Для применения полученной формулы нам нужны длины векторов, которые несложно определяются по их координатам.

Хотя указанный способ имеет место быть, все же чаще применяют формулу:

Источники:

http://ru.stackoverflow.com/questions/869222/%D0%9D%D0%B0%D1%85%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D1%83%D0%B3%D0%BB%D0%B0-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-2-%D1%82%D0%BE%D1%87%D0%BA%D0%B0%D0%BC%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%8B-%D0%BA-%D1%86%D0%B5%D0%BB%D0%B8

http://ik-study.ru/ege_math/zagholovok_stat_i

http://zaochnik.com/spravochnik/matematika/vektory/nahozhdenie-ugla-mezhdu-vektorami-primery-i-reshen/

Ссылка на основную публикацию
Статьи на тему:

Adblock
detector