OpenGL半圆旋转和四分之一圆
OpenGL semicircular rotation and quarter circle
以下代码将使用 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 来旋转形状?
这里i
是radians中的角度。循环从 π 到 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);
}
以下代码将使用 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 来旋转形状?
这里i
是radians中的角度。循环从 π 到 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);
}