gpt4 book ai didi

c++ - Box2D c++ 绕点旋转

转载 作者:行者123 更新时间:2023-11-30 05:21:29 32 4
gpt4 key购买 nike

但是,我还想让 Sprite 的旋转反射(reflect) b2bodies 的旋转。但是,在我旋转 Sprite 之后,我用来使它们与 b2body 位置正确居中的偏移量不再准确。

void CRoom::RotateGun(const SDL_Event &event)
{
glm::vec2 mousePosition = sdl::GetMousePosition(event.motion);
glm::vec2 delta = mousePosition - GUN_POSITION;
float angle = atan2f(delta.y, delta.x);
m_gun->GetBody()->SetTransform(m_gun->GetPosition(), angle);
}

image1

最佳答案

使用矩阵相乘。

使用常规约定,转换是

 move(-width/2, -height/2) * rotate(angle) * move(width/2 height/2) *move(x, y)

有时您必须颠倒顺序。

关于c++ - Box2D c++ 绕点旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061321/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com