資源簡介
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
- 上一篇:Skins VC6.0程序皮膚
- 下一篇:數據結構大項目家譜管理系統
評論
共有 條評論