我试着用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;提前感谢您的帮助。
发布于 2012-12-06 16:57:42
感谢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发布于 2012-12-06 03:01:29
我知道您已经用一种不同的方法解决了这个问题,但值得注意的是,plot调用非常昂贵,而且您试图在这三层嵌套循环中调用4e8次。
如果你减小了循环的大小,它就能正常工作。仍然需要相当长的时间,是的,绘制实心块比一系列线条更有效:)
https://stackoverflow.com/questions/12950321
复制相似问题