提示画像の矢印の楕円ですが横の伸びる楕円を実装したいのですが上手く実装出来ません。どういった数式を用いるのでしょうか?
参考サイト: https://math.nakaken88.com/textbook/basic-ellipse-parametric-representation/
cpp
1 2 // ##################################### 楕円 描画 ##################################### 3 void DrawOval(glm::vec2 pos, GLfloat size, 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 glBegin(GL_TRIANGLE_FAN); 14 15////////////////////////////////////////////////////////////////////////////////////////// 16 float r = 100; 17 float num = size; 18 float f = (PI * 2) / num; 19 float ff = 0; 20 for (int i = 0; i < num; i++) 21 { 22 float x = cos(ff) * (r * dx); 23 float y = sin(ff) * (r * dy); 24 25 glVertex2f(pos.x + x + (sin(ff) * (r * dy)), pos.y + y); 26 27 ff += f; 28 } 29///////////////////////////////////////////////////////////////////////////////////////// 30 31 32 33 glEnd(); 34 glFinish(); 35 36 } 37 38
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。