0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 16
1

Угол между векторами

28.01.2018, 18:56. Показов 2532. Ответов 11
Метки нет (Все метки)

Написать программу, которая высчитывает угол между векторами a и b
a=(x1,y1)
b=(x2,y2)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2018, 18:56
Ответы с готовыми решениями:

Угол между векторами
Даны два вектора: a=(x1,y1) b=(x2,y2) Написать функцию, которая высчитывает угол между векторами...

Заданы два вектора х = (x1, x2, x3, x4), y = (y1, y2, y3, y4). Определить угол a между векторами x и y по формуле
Заданы два вектора х = (x1, x2, x3, x4), y = (y1, y2, y3, y4). Определить угол a между векторами x...

Угол между двумя прямыми
День добрый. Мне нужно сделать относительно простую программу. Суть ее заключается в следующем: мне...

Найти угол между стрелками часов
Условие: Я попробовал что-то написать: #include <stdio.h> #include <math.h> int...

11
1850 / 1073 / 681
Регистрация: 25.04.2016
Сообщений: 3,020
28.01.2018, 18:59 2
Учимся пользоваться поиском по форуму.
0
3543 / 2214 / 401
Регистрация: 09.09.2017
Сообщений: 9,210
28.01.2018, 19:35 3
особенно когда только что уже появлялась точно такая же тема
Угол между векторами
0
1850 / 1073 / 681
Регистрация: 25.04.2016
Сообщений: 3,020
28.01.2018, 19:39 4
COKPOWEHEU, так я на нее ссылку и кинул
0
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 16
28.01.2018, 20:22  [ТС] 5
Проверьте мой код, считает cosα
C
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
#include <stdio.h> 
#include <math.h> 
#include <stdlib.h> 
 
int main()
 
{
    double x1,x2,y1,y2,a,b,V;
    
        printf("Enter the x1\n");
        scanf("%lf",&x1);
        printf("Enter the x2\n");
        scanf("%lf",&x2);
        printf("Enter the y1\n");
        scanf("%lf",&y1);
        printf("Enter the y2\n");
        scanf("%lf",&y2);
        
    a = (x1*x2+y1*y2);
    b = sqrt(x1*x1+y1*y1);
    V = a/(b*b);
    
    {printf("%lf\n",V);}
    return 0;
}
0
16 / 15 / 13
Регистрация: 20.11.2017
Сообщений: 100
28.01.2018, 21:11 6
Лучший ответ Сообщение было отмечено tjunnikov как решение

Решение

tjunnikov,
C
1
    b = sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2);
x1 и x2, y1 и y2 это же разные значения)
1
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 16
28.01.2018, 22:00  [ТС] 7
Symonenko, Спасибо :3
0
3543 / 2214 / 401
Регистрация: 09.09.2017
Сообщений: 9,210
29.01.2018, 09:50 8
Цитата Сообщение от tjunnikov Посмотреть сообщение
b = sqrt(x1*x1+y1*y1);
V = a/(b*b);
А какой смысл сначала искать корень и тут же возводить его в квадрат?
0
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 16
29.01.2018, 11:05  [ТС] 9
COKPOWEHEU, я изменил

C
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
#include <stdio.h> 
#include <math.h> 
#include <stdlib.h> 
 
int main()
 
{
    double x1,x2,y1,y2,a,b,V;
    
        printf("Enter the x1\n");
        scanf("%lf",&x1);
        printf("Enter the x2\n");
        scanf("%lf",&x2);
        printf("Enter the y1\n");
        scanf("%lf",&y1);
        printf("Enter the y2\n");
        scanf("%lf",&y2);
        
    a = (x1*x2+y1*y2);
    b = sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2);
    V = a/b ;
    
    {printf("%lf\n",V);}
    return 0;
}
0
3543 / 2214 / 401
Регистрация: 09.09.2017
Сообщений: 9,210
29.01.2018, 11:48 10
tjunnikov, я так понял, в основном вы просто осваиваете Си и математику, и не претендуете на применение своих решений в том виде в котором они сейчас.
Имеет смысл описать каждый вектор как структуру (в С++ лучше класс со всеми его методами) и добавить функции расчета длины вектора, самого угла, его синуса и косинуса (если уж так хочется, да и в ряде случаев это нужно). Можно еще добавить простое вычисление скалярного и векторного произведений (они используются еще чаще, чем просто синус и косинус).
0
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 16
29.01.2018, 11:52  [ТС] 11
COKPOWEHEU,
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
я так понял, в основном вы просто осваиваете Си и математику
так оно и есть
0
3543 / 2214 / 401
Регистрация: 09.09.2017
Сообщений: 9,210
29.01.2018, 15:21 12
tjunnikov, просто мой код с atan2() это уже готовое и использованное мной решение задачи определения угла между векторами в двумерном пространстве.
Ваше же больше похоже на заготовку или упражнение по программированию. Поэтому и предлагаю варианты как его можно разнообразить, усложнить и сделать более полезным. Если нет желания зацикливаться на чистом Си я бы предложил перевести на С++ и реализовать полноценный класс двумерного вектора со всеми методами. Скажем, при работе с дву- или трехмерной графикой это пригодится. Даже если не конкретная реализация, то хотя бы опыт.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2018, 15:21
Помогаю со студенческими работами здесь

Найти площадь треуголььника две стороны которого равны a и b, а угол между ними
Задача: Найти площадь треуголььника две стороны которого равны a и b, а угол между ними y формула:...

Известны ориентированные углы между векторами: угол(АВ,АС)=120 и угол (АВ,АД)=-60. Определите угол (АС,АД)
Известны ориентированные углы между векторами: угол(АВ,АС)=120 и угол (АВ,АД)=-60. Определите угол...

Угол между лучами. Угол между векторами. Решение треугольника.
1. Найдите угол между лучом ОД и положительной полуосью OX , если Д(-2;2). 2. Решите треугольник...

Угол между векторами
2. Заданы векторы a (-1, 2, 0) и j (0, 1, 0). Вычислить: Cos (a^j). (Ответ: 2/√5).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru