Проблема с поворотом объекта лицом к другому объекту. [C++]

147
21 октября 2019, 23:30

Мне нужно повернуть объект лицевой гранью в направлении другого объект, но есть некоторые проблемы: когда я пытаюсь повернуть один объект к другому, и он, например, лежит с ним на одной прямой Х, все работает корректно (первые два скриншота), но когда я пытаюсь повернуть объект так, как показано на скриншоте, все ломается, вектора считаются неправильно, и я не понимаю, почему и что делать (вторые два скриншота).

До:
 1   0   0   0 
 0   1   0   0 
 0   0   1   0 
 0   0   0   1 
После:
 0   0  -1  0 
-0  -1   0  0 
 1   0   0  0 
 0   0   0  1 

До:
 0   0  -1   0 
-0  -1   0   0 
 1   0   0   0 
 0   0   0   1 
После:
 0        0         -0.707107  0 
 0.5      -0.5       0         0 
 0.707107 -0.707107  0         0 
 0         0         0         1 

Мой код:

void ConcreteObject::faceObjectTo(ConcreteObject otherObject) {
    Vector<double> temp = {0, 1, 0};
    Vector<double> forward = otherObject.getCenter() - this->getCenter();
    forward.normalize();
    Vector<double> right = temp.cross(forward);
    Vector<double> up = forward.cross(right);
    Matrix<double> newMatrix = this->getTransformMatrix().getCurrentState();
    newMatrix(0, 0) = right[0];
    newMatrix(0, 1) = right[1];
    newMatrix(0, 2) = right[2];
    newMatrix(1, 0) = up[0];
    newMatrix(1, 1) = up[1];
    newMatrix(1, 2) = up[2];
    newMatrix(2, 0) = forward[0];
    newMatrix(2, 1) = forward[1];
    newMatrix(2, 2) = forward[2];
    TransformMatrix newObjectMatrix(newMatrix);
    this->setTransformMatrix(newObjectMatrix);
}
READ ALSO
Unit - тесты для C++ и Xcode [закрыт]

Unit - тесты для C++ и Xcode [закрыт]

Всем привет! Необходимо сделать Unit - тестыКакие тесты использовать для Xcode? Пробовал использовать Gtest но так и не смог их собрать, Xcode ругался...

149
Как установить opengl для visual studion 2017

Как установить opengl для visual studion 2017

только начал изучать c++, ну и начал натыкаться на проблемыПодскажите как установить openGl на vs2017 ? В интернете откопал либо видео 2013 года, либо...

146
Assertion failure sdl2 android

Assertion failure sdl2 android

Написал заготовку для игры для android на sdl2 и opengl opengl esПри запуске на android пишет такую ошибку

123