国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

利用MATLAB繪制Bezier曲線

2019-11-08 01:41:20
字體:
來源:轉載
供稿:網友

暫時放棄了用opengl繪圖。因為數據結構略復雜,暫時投奔了MATLAB的懷抱,下面利用MATLAB改寫繪制Bezier曲線的代碼

直接上代碼,首先是直接利用基函數的繪制

function bezier( vertices )%BEZIER 繪制Bezier曲線Dim=size(vertices,1);%二位或者三維空間NumPoint=size(vertices,2)-1;%點的個數t=0:0.001:1;x=[];y=[];z=[];if Dim==2     x=(1-t).^(NumPoint)*vertices(1,1);     y=(1-t).^(NumPoint)*vertices(2,1);  for j=1:NumPoint      w=factorial(NumPoint)/(factorial(j)*factorial(NumPoint-j))*(1-t).^(NumPoint-j).*t.^(j);      x=x+w*vertices(1,j+1);y=y+w*vertices(2,j+1);  endplot(vertices(1,:),vertices(2,:),'b');hold on;grid on;axis tight;  xlabel('X');ylabel('Y');plot(x,y,'r');endif Dim==3    x=(1-t).^(NumPoint)*vertices(1,1);    y=(1-t).^(NumPoint)*vertices(2,1);    z=(1-t).^(NumPoint)*vertices(3,1); for j=1:NumPoint     w=factorial(NumPoint)/(factorial(j)*factorial(NumPoint-j))*(1-t).^(NumPoint-j).*t.^(j);     x=x+w*vertices(1,j+1);y=y+w*vertices(2,j+1);z=z+w*vertices(3,j+1); endplot3(vertices(1,:),vertices(2,:),vertices(3,:),'b');hold on;grid on;axis tight;  %axis([0.5,1.5,0.5,1.5,0,0.7]);xlabel('X');ylabel('Y');zlabel('Z');plot3(x,y,z,'r');view(3);endend

不得不佩服MATLAB的強大。。下面展示兩個例子

vertices=[0.8 0.8 0;1.4 0.6 0;1.5 0.7 0.5;1.5 1.5 .5;0.6 1.4 0;1.5 1.5 0]';bezier( vertices )

再去掉代碼中關于坐標軸的注釋,效果如下

如果是二維的,點換做

vertices = [0 3; 3 7;7 2; 9 6;13 3]';結果為


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平远县| 武功县| 陇西县| 牡丹江市| 海南省| 肥西县| 德钦县| 仪征市| 砚山县| 张家港市| 津南区| 黄浦区| 锦州市| 长治县| 永宁县| 织金县| 南漳县| 荆州市| 兴安盟| 昌乐县| 砚山县| 当雄县| 米脂县| 海城市| 徐水县| 兴化市| 井陉县| 米泉市| 时尚| 武功县| 福鼎市| 石台县| 建平县| 治多县| 黄冈市| 潼关县| 佛山市| 黔西县| 砀山县| 乌拉特中旗| 双辽市|