提示コードのsetRotate関数部ですが原点を中心に回転させて最後それを戻しているのですがなぜ座標がおかしくなるのでしょうか?この関数をどうすれば真ん中を中心に回転して最後元に戻せるのでしょうか?いろいろいじりましたがわかりません。
cpp
1//回転 2void FrameWork::Transform_2D::setRotate(float a) 3{ 4 5 6// std::cout << size.x << std::endl; 7 glm::mat4 m = glm::translate(translate, glm::vec3(size.x / 2.0f, size.y / 2.0f, 0)); //平行移動 8 rotate = glm::rotate(m, a, glm::vec3(0.0,0.0,1.0)); //回転 9 10 //m = glm::translate(translate, glm::vec3(-size.x / 2.0f, -size.y / 2.0f, 0)); //平行移動 11 m = glm::translate(m, glm::vec3(-size.x / 2.0f, -size.y / 2.0f, 0)); //平行移動 12 rotate = glm::rotate(m, a, glm::vec3(0.0, 0.0, 1.0)); //回転 13 14 15} 16
回答作成中に削除申請をされたようで、回答直後、内容の確認ができない状態になりました。
質問から1時間もせずに削除申請する程度なら、質問しないという選択を、もっと真剣にご検討ください。
回答2件
あなたの回答
tips
プレビュー