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

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

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

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

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

В свою же очередь одна единственная прямая проходит через 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