资源简介
利用de Casteljau算法绘制Bezier曲线,是利用了递归的思想
代码片段和文件信息
#include
#include
#include
#include
GLfloat ctrlPoints[4][2] =
{
{ -0.8f 0.1f } {-0.4f 0.6f } { 0.2f 0.8f } { 0.7f 0.2f }
};
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(3);
glColor3f(1.0 0.0 0.0);
for (int i = 0; i < 4; i++){
glBegin(GL_POINTS);
glVertex2fv(&ctrlPoints[i][0]);
glEnd();
}
glColor3f(0.0 0.0 1.0);
glBegin(GL_LINE_STRIP);
for (int i = 0; i < 4; i++){
glVertex2fv(&ctrlPoints[i][0]);
}
glEnd();
int n = 4;//number
float xarray[4];
float yarray[4];
GLfloat ps[11][2];
int u = 0;
for(double t = 0.0;t<=1;t+=0.1)
{
for (int i = 1; i < n; ++i)
{
for (int j = 0; j < n - i; ++j)
{
if (i == 1) // i==1时第一次迭代由已知控制点计算
评论
共有 条评论