1.题目:根据以下Bezier控制顶点,取△t=0.01,按照线性计算方法,编制程序计算曲线上的点,并绘制出曲线和控制多边形。
34.4507 64.8979 92.7423
53.2133 62.9103 78.7443
72.6174 58.5389 64.6679
90.4922 53.8726 51.7908
107.6262 50.2527 40.0300
124.3115 48.5382 29.7099
2. 源代码:
clc
%第一张图代码部分
vertices=load('C:\Users\lenovo\Desktop\5.2.txt');%读取
t=0:0.01:1;%间隔t
x=(1-t).^(NumPoint)*vertices(1,1);
y=(1-t).^(NumPoint)*vertices(1,2);
z=(1-t).^(NumPoint)*vertices(1,3);
for j=1:NumPoint w=factorial(NumPoint)/(factorial(j)*factorial(NumPoint-j))*(1-t).^(NumPoint-j).*t.^(j);
x=x+w*vertices(j+1,1);
y=y+w*vertices(j+1,2);
z=z+w*vertices(j+1,3);
end
plot3(vertices(:,1),vertices(:,2),vertices(:,3),'r');
hold on;
grid on;
axis tight;
xlabel('X');ylabel('Y');zlabel('Z');
plot3(x,y,z,'b');
view(3);%默认方向视图
%下面图代码部分
%1分图
ax1 = subplot(1,3,1);
plot3(vertices(:,1),vertices(:,2),vertices(:,3),'r');
hold on;
plot3(x,y,z,'b');
%2分图
ax2 = subplot(1,3,2);
plot3(vertices(:,1),vertices(:,2),vertices(:,3),'r');
hold on;
plot3(x,y,z,'b');
%3分图
ax3 = subplot(1,3,3);
plot3(vertices(:,1),vertices(:,2),vertices(:,3),'r');
hold on;
plot3(x,y,z,'b');
%视图方向定义
view(ax1,45,45); title(ax1,'view(0,90)');
view(ax2,90,0); title(ax2,'view(90,0)');
view(ax3,0,0); title(ax3,'view(0,0)');
3.结果和导出图:
图1.三维默认方向绘制线
图2.各向观察图