1.绘制目标
请设计一个构建并显示Bezier曲线的OpenGL小程序,程序需要实现的功能如下:
- 能读入控制顶点数据文件;
- 根据读入的控制顶点生成并显示对应的Bezier曲线。
2.核心代码
/ TO DO //
// 按行读取控制顶点的坐标,将读取的坐标点存入数组controlPointsData
for (int i = 0; i < numPoints; i++)
{
getline(inputs, line, '\n');
line = line.replace(line.find(","), 1, " ");
istringstream iss(line);
iss >> controlPointsData[i * 3] >> controlPointsData[i * 3 + 1] >> controlPointsData[i * 3 + 2];
}
///
// TO DO //
// 设置并开启Bezier曲线求值器
glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, NUM_POINTS, CONTROL_POINTS_ARRAY);
glEnable(GL_MAP1_VERTEX_3);
///
/// TO DO ///
// 绘制Bezier曲线
glBegin(GL_LINE_STRIP);
for (int i = 0; i < 50; i++)
{
glEvalCoord1f((float)i / 50.0);
}
glEnd();
/
3.运行结果