- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 OpenGL 新手,我要做这样的东西。问题是,循环似乎只调用一次,但我不知道为什么它变得像 that .
glDisable(GL_CULL_FACE);
int n = 32;
float angle = 0.0f;
float green = 0.0f;
float blue = 1.0f;
float color = 1.0/n;
glColor3f(0.0, 0.0, 1.0);
glTranslatef(0.0, 5.0, 0.0);
drawArrow();
for(int i = 0; i < n; i++){
green = green + color;
blue = blue - color;
glPushMatrix();
glRotatef(angle+(360/n), 0.0f, 0.0f, 1.0f);
glColor3f(0.0, green, blue);
drawArrow();
glPopMatrix();
}
glEnable(GL_CULL_FACE);
最佳答案
问题是所有箭头都以相同的方向绘制。你要做的就是将箭头的旋转向前推进一个角度。
每个箭头的角度必须取决于循环的控制变量 (i
)。两个箭头之间的角度为 360.0/n
,箭头的角度为 360.0*i/n
:
glRotatef(角度+(360/n), 0.0f, 0.0f, 1.0f);
float partAngle = 360.0f * (float)i/(float)n;
glRotatef(angle + partAngle, 0.0f, 0.0f, 1.0f);
<小时/>
另一个选择是使用 glPushMatrix
/ glPopMatrix
。设置旋转角度后压入矩阵,因此循环中旋转增加360.0f/n
:
glPushMatrix();
for(int i = 0; i < n; i++){
green = green + color;
blue = blue - color;
glRotatef(angle+(360.0f/n), 0.0f, 0.0f, 1.0f);
glPushMatrix();
glColor3f(0.0, green, blue);
drawArrow();
glPopMatrix();
}
glPopMatrix();
关于c - for循环中的OpenGL glPushMatrix()和glPopMatrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59496693/
我在旋转方面遇到了麻烦。我可以让立方体旋转得很好,但我只希望那个立方体旋转。我知道我必须使用 glPushMatrix() 和 glPopMatrix() 但每次我将这两个包裹在我的绘图周围时,它就会
我是 OpenGL 新手,我要做这样的东西。问题是,循环似乎只调用一次,但我不知道为什么它变得像 that . glDisable(GL_CULL_FACE); int n = 32; float a
我尝试对两个独立移动的对象进行编码,这意味着它们都在两个不同的方向上移动它有效但不能连续移动。当我将 glTranslatef() 放在 glPushMatrix() 之外时 ... glPopMat
我有以下代码: void drawObj1(){ glPushMatrix(); glTranslatef(rBaseInitPos + (rBaseDim[0]
我知道在 opengl 中使用 gluLookAt(...) 、glPushMatrix 和其他基本转换工具的目的是什么。我被困在这些代码中。在为 opengl 设置适当的要求后,当我在 glPush
我尝试设计一个场景,其中有 3 个球体和一条水平线作为赤道。我必须画出 3 个球体,但我不知道为什么线没有画出来。 这是我的代码,如果你能看出我哪里错了: #include #include vo
我在网上找到了一些代码,可以在屏幕上移动一个框,然后在框到达屏幕末端后重置它。 这是代码: void display(void) { int sign = 1; if (lastFrameTi
我正在计算很多顶点,然后用四边形 strip 显示它们以获得 3D 曲面图。 我对某些顶点有一种奇怪的行为,以不可预测的方式改变颜色。我尝试修复它,巧合的是,当我在前后放置 glPushMatrix(
当对对象应用转换时,我们使用 glPushMatrix/glPopMatrix。但是为什么我们不只使用 glLoadIdentity 呢? 因此 glPushMatrix() ..ap
我有使用旧 OpenGL ES 1 的 Android 项目。我正在使用这种嵌套调用: ... gl.glPushMatrix(); ... gl.glPushMatrix(); ... gl.glP
我尝试从传入的 iphone 麦克风流中绘制波形。数据的提取没有问题,绘图工作正常。只有当我使用 OpenGL 异常断点时,xcode 才会在 glPushMatrix() & glPopMatrix
我正在清除一些曾经运行但不再运行的 wxPython/PyOpenGL 代码——显然它在一个或另一个模块的一些更新后停止工作,我不知道什么时候。 这是一个重现错误的小型示例应用。 import wx
我是一名优秀的程序员,十分优秀!