西门子明星与scilab

时间:2012-10-18 08:32:19

标签: matlab scilab

我正在尝试用Scilab绘制siemens star 而我无法完成它。

知道为什么以下代码不起作用?

t = 0:.001:2*%pi;
xc = 4;
yc= 4;
r =2 ;
n = 1:length(t)/32 : length(t);
v =0:.001:r;
for k =1:length(n)
    if modulo(k,2) ==0 then
           for a=1:length(t)
           for b =1:length(v)
               x(a) = xc+ (r-v(b)) *cos(t(a));
                y(a) = yc+ (r-v(b))* sin(t(a));
               set(gca(),"auto_clear","off")  
               plot(x,y,"black");
           end;
       end;
   else 
     x=xc;
     y=yc;
 end;
end;

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我知道你已经用不同的方式解决了这个问题,但值得注意的是plot调用非常昂贵,并且你试图在这三个嵌套循环级别中调用它4e8次。

如果减小循环的大小,它可以正常工作。仍然需要很长时间,是的,绘制实体块比一系列行更有效:)

答案 1 :(得分:1)

感谢xenoclast的建议,但这是我的代码,我觉得它很短:

plot2d(0,0,-1,"030"," ",[-2,-2,2,2]);
n=16 // number of bands 
for i=1:n
   xfarc(-1.5,1.5,3,3,2*i*(180/n)*64,64*(180/n));
end