数学建模社区-数学中国

标题: binary6-point细分法的程序 [打印本页]

作者: shuirongtong    时间: 2015-11-12 21:43
标题: binary6-point细分法的程序
clc
clear
x(1,=[1 1/2 -1/2 -1 -1/2 1/2 1 1/2 -1/2 -1 -1/2];
y(1,=[0 sqrt(3)/2 sqrt(3)/2 0 -sqrt(3)/2 -sqrt(3)/2 0  sqrt(3)/2 sqrt(3)/2 0 -sqrt(3)/2];
plot(x(1,1:7),y(1,1:7),'m'); %画初始的控制多边形  品红色
hold on
scatter(x(1,,y(1,,'k*');
%axis([-10 10 0 10])

N=11;   %初始控点个数
L=1;
n=N-3;
for k=1
    nk=2^(k-1)*n+5;  %细分后控制点的个数
    % for i=3:nk-1
    %   x(k+1,2*i+1)=w1*x(k,i-2)+w2*x(k,i-1)+w3*x(k,i)+w3*x(k,i+1)+w2*x(k,i+2)+w1*x(k,i+3);
    %  y(k+1,2*i+1)=w1*y(k,i-2)+w2*y(k,i-1)+w3*y(k,i)+w3*y(k,i+1)+w2*y(k,i+2)+w1*y(k,i+3);\%
    %end
    for i=3:nk-5
        x(k+1,2*i-4)=(3/256)*x(k,i-2)+(-25/256)*x(k,i-1)+(75/128)*x(k,i)+(75/128)*x(k,i+1)+(-25/256)*x(k,i+2)+(3/256)*x(k,i+3);
        y(k+1,2*i-4)=(3/256)*y(k,i-2)+(-25/256)*y(k,i-1)+(75/128)*y(k,i)+(75/128)*y(k,i+1)+(-25/256)*y(k,i+2)+(3/256)*y(k,i+3);
    end
    for i=3:nk-4
        x(k+1,2*i-5) = x(k,i);
        y(k+1,2*i-5) = y(k,i);

    end
   % x(k+1,2)=(3/256)*x(k,4)+(-25/256)*x(k,3)+(75/128)*x(k,1)+(75/128)*x(k,2)+(-25/256)*x(k,6)+(3/256)*x(k,5);
   % y(k+1,2)=(3/256)*y(k,4)+(-25/256)*y(k,3)+(75/128)*y(k,1)+(75/128)*y(k,2)+(-25/256)*y(k,6)+(3/256)*y(k,5);

    %x(k+1,4)=(3/256)*x(k,2)+(-25/256)*x(k,3)+(75/128)*x(k,4)+(75/128)*x(k,5)+(-25/256)*x(k,6)+(3/256)*x(k,7);
   % y(k+1,4)=(3/256)*y(k,5)+(-25/256)*y(k,1)+(75/128)*y(k,2)+(75/128)*y(k,3)+(-25/256)*y(k,4)+(3/256)*y(k,5);
end
plot(x(L+1,,y(L+1,,'b');
scatter(x(L+1,,y(L+1,,'r*');
利用binary6-point插值细分法画出圆,可是边界不知道怎么处理,求指教?谢谢


作者: 森之张卫东    时间: 2015-11-12 22:17
把代码文件传上来,同学!!!

作者: tongweijuan    时间: 2015-11-16 11:38
复制粘贴到matlab里,就行。





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5