Как рассчитать угол между двумя 3d векторами на плоскости xy - PullRequest
0 голосов
/ 24 июня 2019

Vector1 (-0,241844763, -0,664463024, 0,707106781) vector2 (0.5,0.5,0.707106781)

Я вижу, что система CAD сообщила, что на плоскости X-Y 155 градусов. Как рассчитать это путем программирования?

Спасибо

1 Ответ

0 голосов
/ 24 июня 2019

Вы можете получить угол, который описывает вращение каждого вектора, используя обратную касательную отношения между y и x (при условии, что вы хотите получить угол на плоскости Oxy).Затем вы можете просто вычесть угол одного вектора к другому:

atan2(vector1.y, vector1.x)-atan2(vector2.y, vector2.x)

, где atan2 обычно определяется как

atan2(y, x) {
    if(x==0) {
        if(y<0) {
            return PI/2;
        } else {
            return -PI/2;
    } else {
        angle=atan(y/x);
        if(x<0 && y>=0) {
            angle+=PI
        } else if(x<0 && y<0) {
            angle-=PI
        }
        return angle;
    }
}

, возвращая угол между -PI иЧИСЛО ПИ;таким образом, он охватывает весь круг, а не только половину.

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