資源簡介
給定四個控制點 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()??//初始化函數(shù)
{
glViewport(00100100);
????//glClearColor(1.0?1.0?1.0?0.0);?//設(shè)置背景顏色
????glMatrixMode(GL_PROJECTION);???????//?設(shè)置投影參數(shù)
????//glLoadIdentity();
????gluOrtho2D(0.030.00.020.0);?//?設(shè)置場景的大小
}
void?Bernstain()??//Bernstain基函數(shù)
{
????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軸旋轉(zhuǎn)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);?//設(shè)置線條顏色
????glPointSize(2);?//設(shè)置點的大小
????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
- 上一篇:蛇形矩陣遞歸算法
- 下一篇:使用 OpenCV 編制一個簡單的徒手繪圖程序。
評論
共有 條評論