91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

學習NURBS時寫的NURBS曲線曲面的庫-NurbsLib,用它就可以畫NURBS曲線和曲面了。里面的源代碼參照了The NURBS Book

資源截圖

代碼片段和文件信息

/************************************************************************/
/*?added?by?qiaozhifeng?2008.03.20??at?Tianjin?University?Build?10th?room?110
/*?More:
/*???http://blog.csdn.net/qiaozhifeng??
/*
/************************************************************************/
//?NurbsCurve.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“NurbsCurve.h“
/////////////////////////////////////////////////////////////////////////////
//?NurbsCurve
CNurbsCurve::CNurbsCurve()
{
BinomialCoef(11Coefficients);//?計算二項式系數默認只求一次的。
}
CNurbsCurve::CNurbsCurve(int?r)
//聲明求導的次數,便于統一計算,加快運算速度!
{
BinomialCoef(r+1r+1Coefficients);//?計算二項式系數
}


CNurbsCurve::~CNurbsCurve()
{
}
double?CNurbsCurve::basisFun(?double?uint?kMatrix&?Knot)?const
{
/*b樣條基函數求解
功能:給定基函數求解所需的k+2個節點,及對應的u值,求出基函數n的值
k:基函數次數;
u?:參數值
Knot:節點矢量,給定點數應該為k+2
*/

double?Nip?;
??double?savedUleftUrighttemp?;
??
??//if(p<1)
???//?p?=?deg_?;

??//if((i==0?&&?u?==?U(0))?||
????//?(i?==?U.n()-p-2?&&?u==U(U.n()-1))){
???//?Nip?=?1.0?;
???//?return?Nip?;
??//}
??if(k==0&&(u>=Knot(00)&&u<=Knot(0k+1)))
??{
??Nip?=?1.0?;
??return?Nip?;
??}

??if(u=Knot(0k+1))
??{
????Nip?=?0.0?;
????return?Nip;
??}
??Matrix?N;
??//T*?N?=?(T*)?alloca((p+1)*sizeof(T))?;?//?Vector?N(0p+1)?;
??N.SetSize(1k+1);

??int?j?;
??for(j=k;j>=0;--j){
????if(u>=Knot(0j)?&&?u??????N(0j)?=?1.0?;
????else
??????N(0j)?=?0.0?;
??}
??for(int?r=1;?r<=k?;?r++){
????if(N(00)?==?0.0)
??????saved?=?0.0?;
????else
??????saved?=?(?(u-Knot(00))*N(00))/(Knot(0r)-Knot(00))?;
????for(j=0;j??????Uleft?=?Knot(01+j)?;
??????Uright?=?Knot(01+j+r)?;
??????if(N(0j+1)==0.0){
N(0j)?=?saved?;
saved?=?0.0?;
??????}
??????else?{
???temp=(Uright-Uleft);
???if(temp!=0)???????????????????//對temp=0進行特殊處理
?????{
???temp?=?N(0j+1)/temp?;
???}
N(0j)?=?saved+(Uright-u)*temp?;
saved?=?(u-Uleft)*temp?;
??????}
????}
??}
??Nip?=?N(00)?;

??return?Nip?;??
}
void?CNurbsCurve::basisFuns(double?uint?kMatrix&?KnotMatrix&?N)?const
?{
/*一系列的b樣條基函數求解,可以節省大量運算!
功能:給定基函數求解所需的k*2個節點,及對應的u值,求出各階的基函數的值(除了零次的)
k:基函數次數;
u?:參數值
Knot:節點矢量,給定點數應該為k*2
N:?返回各階基函數的值,基函數個數應該為k+1(除了零次的)。
除了邊緣位置的u,u的位置應該在Knot(0k-1)與Knot(0k)之間!
優點:可一次性的求出Knot(0k-1)與Knot(0k)區間的所有基函數在Knot(0k-1)到Knot(0k)間的值
*/
Matrix?leftright;
N.SetSize(1k+1);
left.SetSize(1k+1);
right.SetSize(1k+1);
N(00)=1.0;
double?tempsaved?;
for(int?j=1;?j<=?k?;?j++){
????left(0j)?=?u-Knot(0k-j)?;
????right(0j)?=?Knot(0k-1+j)-u?;
????saved?=?0.0?;
????for(int?r=0?;?r???temp=(right(0r+1)+left(0j-r));
???if(temp!=0)???????????????????//對temp==0進行特殊處理
?????{
???temp?=?N(0r)/temp?;
???}
??????N(0r)?=?saved+right(0r+1)?*?temp?;
??????saved?=?left(0j-r)?*?temp?;
????}
????N(0j)?=?saved?;
??}
}
bool?CNurbsCurve::ComputeBsplinePoint(int?dimint?kMatrix&?ControlPointMatrix&?Knotdouble?u

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????781??2008-06-01?14:29??NurbsSurface\StdAfx.h

?????文件????????210??2008-06-01?14:29??NurbsSurface\StdAfx.cpp

?????文件???????1491??2008-06-01?14:29??NurbsSurface\Readme.txt

?????文件????????549??2008-06-01?14:29??NurbsSurface\NurbsSurface.dsw

?????文件??????74752??2008-06-19?10:44??NurbsSurface\NurbsSurface.ncb

?????文件???????6721??2008-06-07?10:13??NurbsSurface\NurbsCurve.h

?????文件????????260??2008-06-19?10:44??NurbsSurface\NurbsSurface.plg

?????文件???????3464??2008-06-01?14:32??NurbsSurface\NurbsSurface.dsp

?????文件?????210402??2008-06-01?14:31??NurbsSurface\NurbsSurface0.lib

?????文件???????4547??2008-06-19?10:29??NurbsSurface\復件?NurbsSurface.h

?????文件??????30593??2008-06-17?12:50??NurbsSurface\matrix.h

?????文件??????91934??2008-06-19?10:44??NurbsSurface\Release\NurbsSurface.lib

?????文件????3318716??2008-06-19?10:44??NurbsSurface\Release\NurbsSurface.pch

?????文件??????50176??2008-06-19?10:44??NurbsSurface\Release\vc60.idb

?????文件????????566??2008-06-19?10:44??NurbsSurface\Release\StdAfx.obj

?????文件??????85012??2008-06-19?10:44??NurbsSurface\Release\NurbsSurface.obj

?????文件?????205662??2008-06-07?10:32??NurbsSurface\Debug\NurbsSurface.lib

?????文件???????8618??2008-06-19?10:29??NurbsSurface\NurbsSurface.h

?????文件??????25485??2008-06-07?10:49??NurbsSurface\NurbsSurface.cpp

?????文件??????86016??2008-06-19?10:44??NurbsSurface\NurbsSurface.opt

?????文件????????781??2008-06-01?14:17??NurbsCurve\StdAfx.h

?????文件????????208??2008-06-01?14:17??NurbsCurve\StdAfx.cpp

?????文件???????1479??2008-06-01?14:17??NurbsCurve\Readme.txt

?????文件????????545??2008-06-01?14:17??NurbsCurve\NurbsCurve.dsw

?????文件??????50176??2008-06-19?10:43??NurbsCurve\NurbsCurve.ncb

?????文件???????3312??2008-06-01?14:17??NurbsCurve\NurbsCurve.dsp

?????文件???????1264??2008-06-19?10:43??NurbsCurve\NurbsCurve.plg

?????文件??????30593??2008-06-17?12:50??NurbsCurve\matrix.h

?????文件?????173882??2008-06-01?14:18??NurbsCurve\NurbsCurve0.lib

?????文件???????3133??2008-06-01?14:20??NurbsCurve\復件?NurbsCurve.h

............此處省略18個文件信息

評論

共有 條評論