資源簡介
計算機圖形學實驗 Bezier曲線的繪制 可執行源碼
代碼片段和文件信息
#include?
#include?
#include?
typedef?struct{
float?x;
float?y;
}point;
void??drawpoint(point?bezint?color){//畫點
putpixel(bez.xbez.ycolor);
}
void?binomial(int?nint?*?C){//計算二項式的值
int?kj;
for(k?=?0;k<=n;k++){
C[k]?=?1;
for(j?=?n;j>=k+1;j--)
C[k]*=j;
for(j=n-k;j>=2;j--)
C[k]/=j;
}
}
void?compute(float?u?point?*bez?int?nC?point?*controlint?*C){//計算xy點的坐標
int?k;
int?n=nC-1;
float?bezblend;
bez->x=bez->y=0.0;
for(k=0;k bezblend?=?C[k]?*?pow(uk)?*pow(1-un-k);
bez->x+=control[k].x?*?bezblend;
bez->y+=control[k].y?*?bezblend;
}
}
void?bezier(point?*?control?int?nCint?nB){//繪制Bezier曲線
point?bez;
float?u;
int?*Ck;
C?=?new?int?[nC];
binomial(nC-1C);
for(k=0;k<=nB;k++){
u=float(k)/float(nB);
compute(u&beznCcontrolC);
drawpoint(bezWHITE);
}
delete?[]?C;
putpixel(control->xcontrol->yWHITE);
}
int?main(){
initgraph(640480);
setorigin(250250);
int?nC?=?4;
int?nB?=?1000;
point?control[4]?=?{{-200-100}{-10200}{10-200}{100100}};
setcolor(RED);
for(int?i=0;i<4;i++){
line(control[i].xcontrol[i].ycontrol[i+1].xcontrol[i+1].y);
}
bezier(controlnCnB);
getchar();
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1280??2014-06-04?20:10??Bezier\Bezier\Bezier.cpp
?????文件???????3222??2014-06-03?21:08??Bezier\Bezier\Bezier.vcxproj
?????文件????????944??2014-06-03?21:08??Bezier\Bezier\Bezier.vcxproj.filters
?????文件????????143??2014-06-03?21:06??Bezier\Bezier\Bezier.vcxproj.user
?????文件???????1109??2014-06-03?21:09??Bezier\Bezier\Debug\Bezier.Build.CppClean.log
?????文件????????381??2014-06-04?20:10??Bezier\Bezier\Debug\Bezier.exe.intermediate.manifest
?????文件?????????68??2014-06-04?20:10??Bezier\Bezier\Debug\Bezier.lastbuildstate
?????文件???????3227??2014-06-04?20:10??Bezier\Bezier\Debug\Bezier.log
?????文件??????29005??2014-06-04?20:10??Bezier\Bezier\Debug\Bezier.obj
?????文件????????524??2014-06-04?20:10??Bezier\Bezier\Debug\cl.command.1.tlog
?????文件??????13396??2014-06-04?20:10??Bezier\Bezier\Debug\CL.read.1.tlog
?????文件????????278??2014-06-04?20:10??Bezier\Bezier\Debug\CL.write.1.tlog
?????文件???????1096??2014-06-04?20:10??Bezier\Bezier\Debug\li
?????文件???????2472??2014-06-04?20:10??Bezier\Bezier\Debug\li
?????文件????????486??2014-06-04?20:10??Bezier\Bezier\Debug\li
?????文件????????400??2014-06-04?20:10??Bezier\Bezier\Debug\mt.command.1.tlog
?????文件????????802??2014-06-04?20:10??Bezier\Bezier\Debug\mt.read.1.tlog
?????文件????????226??2014-06-04?20:10??Bezier\Bezier\Debug\mt.write.1.tlog
?????文件?????388096??2014-06-04?20:10??Bezier\Bezier\Debug\vc100.idb
?????文件?????118784??2014-06-04?20:10??Bezier\Bezier\Debug\vc100.pdb
?????文件???26890240??2014-06-04?21:30??Bezier\Bezier.sdf
?????文件????????885??2014-06-03?21:06??Bezier\Bezier.sln
????..A..H.?????10240??2014-06-04?21:30??Bezier\Bezier.suo
?????文件?????101376??2014-06-04?20:10??Bezier\Debug\Bezier.exe
?????文件?????764792??2014-06-04?20:10??Bezier\Debug\Bezier.ilk
?????文件?????584704??2014-06-04?20:10??Bezier\Debug\Bezier.pdb
?????文件???31391744??2014-06-04?20:59??Bezier\ipch\bezier-61c7d58f\bezier-631bcc6d.ipch
?????目錄??????????0??2014-06-04?20:10??Bezier\Bezier\Debug
?????目錄??????????0??2014-06-04?20:59??Bezier\ipch\bezier-61c7d58f
?????目錄??????????0??2014-06-03?21:08??Bezier\Bezier
............此處省略6個文件信息
評論
共有 條評論