-
Автор темы
- #1
У меня возникла проблема с вращением v_.... моделей оружий, не понимаю как правильно высчитать центр, что бы вокруг него крутить камеру.
C++:
Vector vecMins = Vector{ 0,0,0 };
Vector vecMaxs = Vector{ 0,0,0 };
GetMDLBoundingBox(vecMins, vecMaxs, this->pPreviewModel->RootMDL.m_MDL, this->pPreviewModel->RootMDL.nSequence);
center.x = (vecMins.x + vecMaxs.x) / 2;
center.y = (vecMins.y + vecMaxs.y) / 2;
center.z = (vecMins.z + vecMaxs.z) / 2;
CViewSetup viewSetup = { };
viewSetup.x = 0;
viewSetup.y = 0;
viewSetup.width = static_cast<int>(vecSize.x);
viewSetup.height = static_cast<int>(vecSize.y);
viewSetup.bOrtho = false;
viewSetup.fov = DirectX::XMConvertToDegrees(std::atanf(std::tanf(54.f * (0.5f * M_PI / 180.f)) * ((vecSize.x / vecSize.y)))) * 2.0f;
viewSetup.origin = { center.x + std::cosf(DirectX::XMConvertToRadians(ctx->skin_rotation)) * radius, center.y + std::sinf(DirectX::XMConvertToRadians(ctx->skin_rotation)) * radius , center.z + ctx->pos_skin_preview.z };
viewSetup.angles = math::calculate_angle(viewSetup.origin, center);
Пожалуйста, авторизуйтесь для просмотра ссылки.