• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-11
  • 语言: C/C++
  • 标签: opengl  

资源简介

opengl绘制三次B样条曲线............................

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 

//#include 

using namespace std;

//points保存点
vector > points;

//画直线
void drawLine() {
    glColor3f(1.0f 0 0);
    glPointSize(1.0);
    for (int i = 0; i <= 5; i ++) {
        glBegin(GL_LINES);
            glVertex2f(points[i].first points[i].second);
            glVertex2f(points[i+1].first points[i+1].second); 
        glEnd();
    }
}

//贝塞尔曲线
void drawCurve() {
    glColor3f(0 1.0f 0);
    glPointSize(1.0);
double F03F13F23F33;
for (int i = 0; i<=3; i++){
for (GLfloat t = 0; t <= 1.0; t += 0.001) {
F03 = (-t*t*t+3*t*t-3*t+1)/6;
F13 = (3*t*t*t-6*t*t+4)/6;
F23 = (-3*t*t*t+3*t*t+3*t+1)/6;
F33 = t*t*t/6;
GLfloat x = points[i].first*F03 + points[i+1].first*F13 + points[i+2].first*F23 + points[i+3].first*F33;
GLfloat y = points[i].second*F03 + points[i+1].second*F13 + points[i+2].second*F23 + points[i+3].second*F33;
glBegin(GL_POIN

评论

共有 条评论