提示コードの/////コメント部ですがglRotated();関数の使い方がわかりません。glMatrixMode();関数の引数を変えたり順序を変えたりしましたが動作が**描画する楕円が小さくなり反転します。**この関数はどうやって使うのでしょうか?回転してくません。
参考サイトA: https://docs.microsoft.com/ja-jp/windows/win32/opengl/glrotated
参考サイトB: https://docs.microsoft.com/en-us/windows/win32/opengl/glmatrixmode
cpp
1 2 // ##################################### 楕円 描画 ##################################### 3 void DrawEllipse(glm::vec2 pos,int num, glm::vec2 size,float r, glm::vec4 color) 4 { 5 float dx = 1.0f / (FrameWork::getWindowContext()->getSize().x / 2); 6 float dy = 1.0f / (FrameWork::getWindowContext()->getSize().y / 2); 7 float c = 1.0f / 255.0f; 8 glColor4f(color.x * c, color.y * c, color.z * c, color.w * c); //カラー 9 10 pos.x = (pos.x * dx) - 1.0f; 11 pos.y = 1.0f - (pos.y * dy); 12//////////////////////////////////////////////////////////////////////// 13 glMatrixMode(GL_PROJECTION); 14 glRotated(r, 0, 0, 0); 15//////////////////////////////////////////////////////////////////////// 16 glBegin(GL_TRIANGLE_FAN); 17 18 float f = (PI * 2) / num; 19 float ff = 0; 20 for (int i = 0; i < num; i++) 21 { 22 float x = cos(ff) * (size.x * dx); 23 float y = sin(ff) * (size.y * dy); 24 25 26 glVertex2f(pos.x + x, pos.y + y); 27 28 29 ff += f; 30 } 31 32 33 34 glEnd(); 35 36 glFinish(); 37 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/22 09:05
退会済みユーザー
2021/06/22 10:27 編集
2021/06/22 10:33
2021/06/22 10:35
2021/06/22 10:37
退会済みユーザー
2021/06/22 10:56 編集