我正在尝试用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;
提前感谢您的帮助。
答案 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