Мне нужно повернуть объект лицевой гранью в направлении другого объект, но есть некоторые проблемы: когда я пытаюсь повернуть один объект к другому, и он, например, лежит с ним на одной прямой Х, все работает корректно (первые два скриншота), но когда я пытаюсь повернуть объект так, как показано на скриншоте, все ломается, вектора считаются неправильно, и я не понимаю, почему и что делать (вторые два скриншота).
До:
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);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем привет! Необходимо сделать Unit - тестыКакие тесты использовать для Xcode? Пробовал использовать Gtest но так и не смог их собрать, Xcode ругался...
только начал изучать c++, ну и начал натыкаться на проблемыПодскажите как установить openGl на vs2017 ? В интернете откопал либо видео 2013 года, либо...
Написал заготовку для игры для android на sdl2 и opengl opengl esПри запуске на android пишет такую ошибку