0
是否可以告诉OpenGL绘制具有10个细分的4度(5控制点)贝塞尔曲线?在OpenGL中绘制具有有限细分的贝塞尔曲线
我这个尝试:
point ctrlpts[] = {..., ..., ..., ...};
glMap1f(GL_MAP1_VERTEX_3, 0, 1, 3, 5, ctrlpts);
glBegin(GL_LINE_STRIP);
for (i = 0; i <= 30; i++)
glEvalCoord1f((GLfloat) i/30.0);
glEnd();
但这只是绘制曲线很好。我在想,我希望贝塞尔曲线内的算法只能绘制到10个细分,然后停止。该行应该看起来有点面。
将0从0分为10,是真的细分为10个部分,还是仅仅是“看起来像”10个细分?只是好奇,是否有可能从'glEvalCoord1f()'获取坐标本身? – Carven
@xEnOn:它确实是10个细分。 glEvalCoord1f的作用类似于一个包装器,用于评估给定参数的贝塞尔曲线并为其调用glVertex。 OpenGL本身只是一个绘图API而不是一个数学或几何图形库,所以试图从glEvalCord1f中“获取”值是错误的(尽管不是不可能的,如果跳过某些环)。只需自己评估贝塞尔曲线。你有控制点,维基百科的公式/算法。如果您将输出提供给glVertex调用,结果将难以区分。 – datenwolf