• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: C/C++
  • 标签: OPENGL  

资源简介

给定四个控制点 P0(0, 0, 0)、P1(1, 1, 1)、P2(2, -1, -1)和 P3(3, 0, 0),编写 1 个程序绘制这些控制点生成的三次 Bézier 曲线。

资源截图

代码片段和文件信息

#include 
#include 
#include 

const GLfloat Pi = 3.1415926536f;

//定义点集
struct data{
    GLfloat x;
    GLfloat y;
    GLfloat z;
}Point[4];

void init()  //初始化函数
{
glViewport(00100100);
    //glClearColor(1.0 1.0 1.0 0.0); //设置背景颜色
    glMatrixMode(GL_PROJECTION);       // 设置投影参数
    //glLoadIdentity();
    gluOrtho2D(0.030.00.020.0); // 设置场景的大小
}

void Bernstain()  //Bernstain基函数
{

    glClear(GL_COLOR_BUFFER_BIT);

    glTranslatef(10.0f 10.0f 0.0f); //平移图形
    glScalef(1.0f 1.0f 1.0f); //缩小图像0.5倍
    //glRotatef(60.0f 1.0f 0.0f 0.0f); //沿x轴旋转60度

    //四个点作为控制顶点
    Point[0].x = 0.0;
    Point[0].y = 0.0;
    Point[0].z = 0.0;
    Point[1].x = 1.0;
    Point[1].y = 1.0;
    Point[1].z = 1.0;
    Point[2].x = 2.0;
    Point[2].y = -1.0;
    Point[2].z = -1.0;
    Point[3].x = 3.0;
    Point[3].y = 0.0;
    Point[3].z = 0.0;

    glColor3f(0.0 0.0 1.0); //设置线条颜色
    glPointSize(2); //设置点的大小

    glBegin(GL_LINES);
        glVertex3f(Point[0].x Point[0].y Point[0].z);
        //glVertex3f(Point[0].x Point[0].y Point[0].z);
        glVertex3f(Point[1].x Point[1].y Point[1].z);
        glVertex3f(Point[1].x Point[1].y Point[1].z);
        glVertex3f(Poin

评论

共有 条评论