提示コードですが回転しない場合は原点が中心なのですがglRotated()関数を使って回転させると中心を中心に回転してくれませんglVertex2f();にはどういった式を入れるべきなのでしょうか?
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 14 //glMatrixMode(GL_MODELVIEW); 15 16 glPushMatrix(); 17 glRotated(r,0,0,1); 18 19 glBegin(GL_TRIANGLE_FAN); 20 21 float f = (PI * 2) / num; 22 float ff = 0; 23 for (int i = 0; i < num; i++) 24 { 25 float x = cos(ff) * (size.x * dx); 26 float y = sin(ff) * (size.y * dy); 27 28 glVertex2f(pos.x + x, pos.y + y); 29 30 ff += f; 31 } 32 33 glEnd(); 34 glFinish(); 35 36 glPopMatrix(); 37 38 } 39 40
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/06/23 02:01
2021/06/23 02:06