我正在尝试使用 2d 矢量的 QList 来绘制一系列非连接线/弧,并随着它们在列表中的旧颜色褪色。
例如:
void drawArcs(QList<QVector2D>& points,
float centerX, float centerY,
float red, float green, float blue)
{
glBegin(GL_LINE_STRIP);
float colorGain;
int INC;
INC=0;
colorGain=float(INC)/float(TotalArcPoints);
foreach (const QVector2D& vec, points)
{
glColor3f(colorGain*red, colorGain*green, colorGain*blue);
glVertex3f( vec.x() + centerX,
- vec.y() + centerY,
0.0);
INC++;
colorGain=float(INC)/float(TotalArcPoints);
}
glEnd();
}
但是,这将我所有的弧连接在一起,我希望 QList 中的每组 2D 向量都是它自己的弧,但是当我将代码更改为此时。它什么也没画,屏幕是空白的。
void drawArcs(QList<QVector2D>& points,
float centerX, float centerY,
float red, float green, float blue)
{
float colorGain;
int INC;
INC=0;
colorGain=float(INC)/float(TotalArcPoints);
foreach (const QVector2D& vec, points)
{
glBegin(GL_LINE_STRIP);
glColor3f(colorGain*red, colorGain*green, colorGain*blue);
glVertex3f( vec.x() + centerX,
- vec.y() + centerY,
0.0);
INC++;
colorGain=float(INC)/float(TotalArcPoints);
glEnd();
}
}
颜色映射在上面的代码中工作正常,所以我不认为这是问题所在。我更困惑为什么在 for each 循环内移动 glBegin/glEnd 不会导致任何内容被绘制。
有任何想法吗?