Аватар для Lynatik001
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818

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

08.09.2014, 19:14. Показов 22369. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть координаты конца вектора.
Я вроде норм нахожу долготу вектора, но не как не пойму как мне найти угол между ним, что бы он правильно рисовался. начинаются координаты с 0))
В математике я просто нуб. покажет кто как мне правильно сделать. (вероятно не правельные формула что выделил красным) ну или в градусы неудачно переводил...


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
26
27
28
29
30
31
32
33
34
35
36
37
#include "stdafx.h"
#include "Vector.h"
#include <math.h>
#include "SFML\Graphics.hpp"
using namespace sf;
Vector::Vector(float x, float y,RenderWindow &window)
{
    this->x = x;
    this->y = y;
    this->window = &window;
}
 
Vector::~Vector()
{
 
}
void Vector::drawvector()
{
    float cutt;
    RectangleShape line2(Vector2f(getwidth(), 5));
//  line2.setPosition(400,400);
    line2.setFillColor(Color(00,100,000,100));
[COLOR="red"]   cutt = cut();
 
    line2.setRotation(cutt);[/COLOR]
    window->draw(line2);
}
 
float Vector::getwidth()
{
    return sqrt(x*x+y*y);
}
 
float Vector::cut()
{
    return [COLOR="Red"]((x+y)/sqrt(x*x+y*y))*(180/3,1415);[/COLOR]
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include "SFML\Graphics.hpp"
#include <Windows.h>
#include <iostream>
using namespace sf;
using namespace std;
 
class Vector
{
public:
    float endvector;
    Vector(float x, float y,RenderWindow &window);
    ~Vector();
    void drawvector();
    float getwidth();
    float cut();
private:
    float x,y;
    RenderWindow *window;
};
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// laba3.1.5.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "Vector.h"
#include "SFML\Graphics.hpp"
#include <Windows.h>
#include <iostream>
using namespace sf;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    RenderWindow window(VideoMode(800,800), "line");
    float x,y;
    sf::CircleShape shape(5);
    shape.setFillColor(Color(00,100,000,100));
    shape.setPosition(400,400);
    //line2.setPosition(400,400);
    //line2.setFillColor(Color(00,100,000,100));
    cin >> x;
    cin >> y;
    Vector vectorr(x,y,window);
    
    while (window.isOpen()) {
 
        Event event;
        while (window.pollEvent(event)) {
            if (event.type == Event::Closed)
                window.close();
            }
        window.clear(Color(255,255,255,255));
        vectorr.drawvector();
        
        //line2.setRotation(line2.getRotation()+0.001);
        window.draw(shape);
        window.display();
        }
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.09.2014, 19:14
Ответы с готовыми решениями:

Найти угол, выраженный в радианах и градусах между векторами A(xa, ya) и B(xb, yb)
Найти угол, выраженный в радианах и градусах между векторами A(xa, ya) и B(xb, yb). Это всё условие, которое мне дано... Но я даже не...

Класс вектор на основе класса Complex. Найти угол между векторами
класс вектор на основе класса комплекс найти кут между векторами...

Угол между векторами со знаком в 2D!
Привет! :) См. картинку. Есть 2д декартово пространство. 1. Задан вектор отрезок AB (координаты точек известны) 2. Есть отрезок...

23
 Аватар для Lynatik001
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818
15.09.2014, 10:12  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от zss Посмотреть сообщение
Сейчас у Вас угол от -180 до 180 градусов, чтобы было от 0 до 360,
прибавьте 180 и все!
C++
1
return atan2(y,x)*360./pi;
еще правельнее чем предведущий
Миниатюры
Найти угол между векторами  
0
 Аватар для Lynatik001
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818
15.09.2014, 10:16  [ТС]
C++
1
return (atan2(y,x)*180./pi)+180;
Миниатюры
Найти угол между векторами  
0
4 / 4 / 1
Регистрация: 14.09.2014
Сообщений: 14
17.09.2014, 00:29


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
// laba3.1.5.cpp : Defines the entry point for the console application.
//
 
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    float x, y, r;
 
    cout << "Введите координаты вектора x и y: \n";
    cin >> x;
    cin >> y;
 
    r = atan2(y, x) * 180 / 3.14159;
    cout << "\nУгол [0;360) между вектором и осью х = " << r + ((r < 0) ? 360 : 0);
    cout << "\nУгол (-180;180] между вектором и осью х = " << r;
    r = atan(y / x) * 180 / 3.14159;
    cout << "\nУгол [-90;90] между вектором и осью х = " << r;
    return 0;
}
Теперь думаю что с графиком у тебя проблем не будет.
1
 Аватар для Lynatik001
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818
17.09.2014, 14:16  [ТС]
Цитата Сообщение от matxon Посмотреть сообщение
Код C++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// laba3.1.5.cpp : Defines the entry point for the console application.
//
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
* * setlocale(0, "");
* * float x, y, r;
cout << "Введите координаты вектора x и y: \n";
* * cin >> x;
* * cin >> y;
r = atan2(y, x) * 180 / 3.14159;
* * cout << "\nУгол [0;360) между вектором и осью х = " << r + ((r < 0) ? 360 : 0);
* * cout << "\nУгол (-180;180] между вектором и осью х = " << r;
* * r = atan(y / x) * 180 / 3.14159;
* * cout << "\nУгол [-90;90] между вектором и осью х = " << r;
* * return 0;
}
Теперь думаю что с графиком у тебя проблем не будет.
ну да спасибо, да все таки 1 проблема нашлась)
градусы круга по методу по часовой стрелке выщитиваются)
а математически против часовой)
типа надо вводить 10 градусов заместь 350 что бы рисунок соотвецтвовал 350 градусам
Миниатюры
Найти угол между векторами  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2014, 14:16

Заданы два вектора с координатами (Хи Yu Z,) и (Х2, Y2, Z^). Определить угол между векторами
Заданы два вектора с координатами (Х1 Y1 Z1) и (Х2, Y2, Z2). Определить угол между векторами. Нужно написать простенькую программу на...

Заданы два вектора с координатами (x1, y1, z1) и (x2, y2, z2). Определить угол между векторами
Смотрел примеры на паскале но нужно написать на Dev-C++ помогите плз!

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

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

Найти угол между прямыми
Найти угол (в градусах) между прямыми y = {k}_{1}x+{b}_{1} и y = {k}_{2}x+{b}_{2}.


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

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

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru