OpenGL半圆旋转和四分之一圆

问题描述

以下代码将使用 openGL 创建一个新的半圆:

    glPointSize(2);
    glBegin(GL_POINTS);
    for (float i = p; i <= (2 * p); i += 0.001) {
        x = 50.0 * cos(i) + 20;
        y = 50.0 * sin(i) + 20;
        glVertex2f(x,y);
    }
    glEnd();

现在我想知道如何更改此代码并使用此格式创建四分之一圆? 另外,是否可以使用这种格式而不使用 glrotateEF 来旋转形状?

解决方法

这里的 iradians 中的角度。循环从 π 到 2π - 这是一个半圆(但它的后半部分 - 有点不明确)。

将其变成从 0 到 π/2 的四分之一圆循环。要将圆旋转 x 度,请将其转换为弧度并加上角度。

或者,您可以通过简单地以角度定义圆的起点和终点来绘制圆的一部分:

double start_angle = 30;
double stop_angle = 30 + 180;
for (double a = start_angle; a <= stop_angle; a += 0.001) {
    double a_rad = a / 180.0 * p;
    x = 50.0 * cos(a_rad) + 20;
    y = 50.0 * sin(a_rad) + 20;
    glVertex2f(x,y);
}