首页 > 解决方案 > 如何调整将二维圆绘制成椭圆的 OpenGL 代码

问题描述

我有这行代码用来画圆,但我想知道如何调整代码,这样我会得到一个椭圆而不是圆。

void circle(int n, int x, int y, int r) {
double inc = 2 * PI / (double)n;
glBegin(GL_POLYGON);
for (double theta = 0.0; theta <= 2 * PI; theta += inc) {
    glVertex2i(r * cos(theta) + x, r * sin(theta) + y);
}
glEnd(); }

标签: c++opengl

解决方案


这是我所拥有的:

void circle(int n, int x, int y, int rx, int ry) {
double inc = 2 * PI / (double)n;
glBegin(GL_POLYGON);
for (double theta = 0.0; theta <= 2 * PI; theta += inc) {
    glVertex2i(rx * cos(theta) + x, ry * sin(theta) + y);
}
glEnd(); 
}

推荐阅读