From 5858f3afe6d3c91f4abcc85592407adb2fc2869c Mon Sep 17 00:00:00 2001 From: lizexin Date: Thu, 29 Jun 2023 15:46:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=9C=A8main=E6=B7=BB=E5=8A=A0=E7=94=BB?= =?UTF-8?q?=E5=9C=86=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.cpp | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 38751f0..a6de35f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,27 +16,30 @@ static void render() { glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(0.5f, -0.5f, 0.0f); CHECK_GL(glEnd()); - /* glBegin(GL_TRIANGLES); */ - /* constexpr int n = 100; */ - /* constexpr float pi = 3.1415926535897f; */ - /* float radius = 0.5f; */ - /* float inner_radius = 0.25f; */ - /* static int x = 0; */ - /* x++; */ - /* if (x > n) */ - /* x -= n; */ - /* for (int i = 0; i < x; i++) { */ - /* float angle = i / (float)n * pi * 2; */ - /* float angle_next = (i + 1) / (float)n * pi * 2; */ - /* glVertex3f(0.0f, 0.0f, 0.0f); */ - /* glVertex3f(radius * sinf(angle), radius * cosf(angle), 0.0f); */ - /* glVertex3f(radius * sinf(angle_next), radius * cosf(angle_next), 0.0f); */ - /* glVertex3f(inner_radius * sinf(angle), inner_radius * cosf(angle), 0.0f); */ - /* glVertex3f(inner_radius * sinf(angle_next), inner_radius * cosf(angle_next), 0.0f); */ - /* glVertex3f(inner_radius * sinf(angle), inner_radius * cosf(angle), 0.0f); */ - /* glVertex3f(radius * sinf(angle_next), radius * cosf(angle_next), 0.0f); */ - /* } */ - /* CHECK_GL(glEnd()); */ +} + +static void render_round() { + glBegin(GL_TRIANGLES); + constexpr int n = 100; + constexpr float pi = 3.1415926535897f; + float radius = 0.5f; + float inner_radius = 0.25f; + static int x = 0; + x++; + if (x > n) + x -= n; + for (int i = 0; i < x; i++) { + float angle = i / (float)n * pi * 2; + float angle_next = (i + 1) / (float)n * pi * 2; + glVertex3f(0.0f, 0.0f, 0.0f); + glVertex3f(radius * sinf(angle), radius * cosf(angle), 0.0f); + glVertex3f(radius * sinf(angle_next), radius * cosf(angle_next), 0.0f); + glVertex3f(inner_radius * sinf(angle), inner_radius * cosf(angle), 0.0f); + glVertex3f(inner_radius * sinf(angle_next), inner_radius * cosf(angle_next), 0.0f); + glVertex3f(inner_radius * sinf(angle), inner_radius * cosf(angle), 0.0f); + glVertex3f(radius * sinf(angle_next), radius * cosf(angle_next), 0.0f); + } + CHECK_GL(glEnd()); } int main() { From e1678f43392df89928ead0391b42c9410cd314f0 Mon Sep 17 00:00:00 2001 From: lizexin Date: Thu, 29 Jun 2023 21:27:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=9C=A8main=E6=B7=BB=E5=8A=A0=E7=94=BBope?= =?UTF-8?q?ncv=20logo=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.cpp | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index a6de35f..d62d866 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -42,6 +42,86 @@ static void render_round() { CHECK_GL(glEnd()); } +static void render_opencv() { + glBegin(GL_TRIANGLES); + + constexpr int n = 360; + constexpr float pi = 3.1415926535897f; + constexpr float stopAngle = 11.0 / 12.0 * pi * 2; + float radius = 0.1f; + float far = 2 * radius; + float inner_radius = 0.06f; + /*static int x = 0; + x++; + if (x > n) + {return;}*/ + for (int i = 0; i < n; i++) { + float angle = i / (float)n * pi * 2; + float angle_next = (i + 1) / (float)n * pi * 2; + //glVertex3f(0.0f, 0.0f, 0.0f); + // Բ1 + if (0.f <= angle && 1.0f / 12.0f * pi * 2 > angle || + 11.0f / 12.0f * pi * 2 <= angle) + { + glColor3f(0.0f, 0.0f, 0.0f); + } + else { + glColor3f(0.0f, 0.0f, 1.0f); + } + glVertex3f(radius * sinf(angle) + far, radius * cosf(angle), 0.0f); + glVertex3f(radius * sinf(angle_next) + far, radius * cosf(angle_next), 0.0f); + glVertex3f(inner_radius * sinf(angle) + far, inner_radius * cosf(angle), 0.0f); + glVertex3f(inner_radius * sinf(angle_next) + far, inner_radius * cosf(angle_next), 0.0f); + glVertex3f(inner_radius * sinf(angle) + far, inner_radius * cosf(angle), 0.0f); + glVertex3f(radius * sinf(angle_next) + far, radius * cosf(angle_next), 0.0f); + + } + + for (int i = 0; i < n; i++) { + float angle = i / (float)n * pi * 2; + + float angle_next = (i + 1) / (float)n * pi * 2; + + // Բ2 + if (1.0f / 12.0f * pi * 2 < angle && 3.0f / 12.0f * pi * 2 > angle) + { + glColor3f(0.0f, 0.0f, 0.0f); + } + else { + glColor3f(0.0f, 1.0f, 0.0f); + } + ; + glVertex3f(radius * sinf(angle) - far, radius * cosf(angle), 0.0f); + glVertex3f(radius * sinf(angle_next) - far, radius * cosf(angle_next), 0.0f); + glVertex3f(inner_radius * sinf(angle) - far, inner_radius * cosf(angle), 0.0f); + glVertex3f(inner_radius * sinf(angle_next) - far, inner_radius * cosf(angle_next), 0.0f); + glVertex3f(inner_radius * sinf(angle) - far, inner_radius * cosf(angle), 0.0f); + glVertex3f(radius * sinf(angle_next) - far, radius * cosf(angle_next), 0.0f); + } + + for (int i = 0; i < n; i++) { + float angle = i / (float)n * pi * 2; + + float angle_next = (i + 1) / (float)n * pi * 2; + + // Բ3 + if (5.0f / 12.0f * pi * 2 < angle && 7.0f / 12.0f * pi * 2 > angle) + { + glColor3f(0.0f, 0.0f, 0.0f); + } + else { + glColor3f(1.0f, 0.0f, 0.0f); + } + glVertex3f(radius * sinf(angle) , radius * cosf(angle) + far, 0.0f); + glVertex3f(radius * sinf(angle_next) , radius * cosf(angle_next) + far, 0.0f); + glVertex3f(inner_radius * sinf(angle) , inner_radius * cosf(angle) + far, 0.0f); + glVertex3f(inner_radius * sinf(angle_next) , inner_radius * cosf(angle_next) + far, 0.0f); + glVertex3f(inner_radius * sinf(angle) , inner_radius * cosf(angle) + far, 0.0f); + glVertex3f(radius * sinf(angle_next) , radius * cosf(angle_next) + far, 0.0f); + } + CHECK_GL(glEnd()); +} + int main() { if (!glfwInit()) { const char *errmsg; @@ -111,7 +191,7 @@ int main() { while (!glfwWindowShouldClose(window)) { // render graphics CHECK_GL(glClear(GL_COLOR_BUFFER_BIT)); - render(); + render_opencv(); // refresh screen glfwSwapBuffers(window); glfwPollEvents();