画的NURBS基函数,为什么输出eps格式时在分段区间边界处显示过于间断(理论上是间断的,但是输出到图片也太明显了,见下图)?如果输出位图而且取样点较多就不明显(如果x取点较少也会有间断,)程序代码如下,求大神帮忙
%!test
n = 6;
U = [0 0 0 1/8 5/8 6/8 1 1 1];
p = 2;
u = linspace (0, 1, 1000);
s = findspan (n, p, u, U);
Bref = [1.00000 0.00000 0.00000
0.60494 0.37037 0.02469
0.30864 0.59259 0.09877
0.11111 0.66667 0.22222
0.01235 0.59259 0.39506
0.39506 0.59259 0.01235
0.22222 0.66667 0.11111
0.09877 0.59259 0.30864
0.02469 0.37037 0.60494
0.00000 0.00000 1.00000];
B = basisfun (s, u, p, U);
B1(:,1) = u';
B1(:,2) = B(:,1);
B2(:,1) = u';
B2(:,2) = B(:,2);
B3(:,1) = u';
B3(:,2) = B(:,3);
k11 = 1;
k12 = 1;
k13 = 1;
k14 = 1;
k21 = 1;
k22 = 1;
k23 = 1;
k24 = 1;
k31 = 1;
k32 = 1;
k33 = 1;
k34 = 1;
%分段画出,共4段(0~1/4;1/4~2/4;2/4~3/4;3/4~1)
nmax = size(B,1);
for i = 1:nmax
if (B1(i,1)>=0&&B1(i,1)<=1/8)
B11(k11,:) = B1(i,:);
k11=k11+1;
elseif(B1(i,1)>=1/8&&B1(i,1)<=5/8)
B12(k12,:) = B1(i,:);
k12=k12+1;
elseif(B1(i,1)>=5/8&&B1(i,1)<=6/8)
B13(k13,:) = B1(i,:);
k13=k13+1;
elseif(B1(i,1)>=6/8&&B1(i,1)<=1)
B14(k14,:) = B1(i,:);
k14=k14+1;
end
if (B2(i,1)>=0&&B2(i,1)<=1/8)
B21(k21,:) = B2(i,:);
k21=k21+1;
elseif(B2(i,1)>=1/8&&B2(i,1)<=5/8)
B22(k22,:) = B2(i,:);
k22=k22+1;
elseif(B2(i,1)>=5/8&&B2(i,1)<=6/8)
B23(k23,:) = B2(i,:);
k23=k23+1;
elseif(B2(i,1)>=6/8&&B2(i,1)<=1)
B24(k24,:) = B2(i,:);
k24=k24+1;
end
if (B3(i,1)>=0&&B3(i,1)<=1/8)
B31(k31,:) = B3(i,:);
k31=k31+1;
elseif(B3(i,1)>=1/8&&B3(i,1)<=5/8)
B32(k32,:) = B3(i,:);
k32=k32+1;
elseif(B3(i,1)>=5/8&&B3(i,1)<=6/8)
B33(k33,:) = B3(i,:);
k33=k33+1;
elseif(B3(i,1)>=6/8&&B3(i,1)<=1)
B34(k34,:) = B3(i,:);
k34=k34+1;
end
end
plot(B11(:,1),B11(:,2),B12(:,1),B12(:,2),B13(:,1),B13(:,2),B14(:,1),B14(:,2),B21(:,1),B21(:,2),B22(:,1),B22(:,2),B23(:,1),B23(:,2),B24(:,1),B24(:,2),B31(:,1),B31(:,2),B32(:,1),B32(:,2),B33(:,1),B33(:,2),B34(:,1),B34(:,2))
![保存成eps矢量图时出现问题]()
2014-3-28 10-59-55.jpg |