File:Simple set2.png
来自testwiki
跳转到导航
跳转到搜索
本预览的尺寸:749 × 599像素。 其他分辨率:300 × 240像素 | 600 × 480像素 | 960 × 768像素 | 1,267 × 1,014像素。
原始文件 (1,267 × 1,014像素,文件大小:6 KB,MIME类型:image/png)
本文件来自维基共享资源并可能被其他项目使用。 其文件描述页上的描述显示在下面。
摘要
| 描述Simple set2.png | Made by myself with matlab. |
| 日期 | 2007年2月7日 (原始上传日期) |
| 来源 | 自己的作品 |
| 作者 | Oleg Alexandrov |
许可协议
| Public domainPublic domainfalsefalse |
| 我,本作品著作权人,释出本作品至公有领域。这适用于全世界。 在一些国家这可能不合法;如果是这样的话,那么: 我无条件地授予任何人以任何目的使用本作品的权利,除非这些条件是法律规定所必需的。 |
Source code (MATLAB)
% split a union of rectangles into a union of rectangles without overlaps
function main()
M=10; imag_root=sqrt(-1); lw=2.5; Ball_rad=0.03;
figure(2); clf; hold on; axis equal; axis off;
% plot the outer polygonal curve
color = [139;10;80]/256;
X=[-2.3677 1.7624 0.1177 4.6499 -3.6469 0.6659 3.4803 6.8794];
Y=[-3.1177 0.2814 -1.1440 2.6937 -0.4496 3.8268 1.5241 5.1425];
% a dummy plot to avoid a matlab bug causing some lines to appear too thin
C=1.05;
plot(C*min(X), C*min(Y), '*', 'color', 0.99*[1, 1, 1]);
plot(C*max(X), C*max(Y), '*', 'color', 0.99*[1, 1, 1]);
% plot the big rectangles, and fill their interiors
n=length(X)/2;
for i=1:n
ax=X(2*i-1); bx=X(2*i);
ay=Y(2*i-1); by=Y(2*i);
% plot the rectangle
plot([ax bx bx ax ax], [ay ay by by ay], 'linewidth', lw, 'color', color);
% round off the corners (a cosmetic thing)
round_ball(ax+imag_root*ay, Ball_rad, color');
round_ball(ax+imag_root*by, Ball_rad, color');
round_ball(bx+imag_root*ay, Ball_rad, color');
round_ball(bx+imag_root*by, Ball_rad, color');
end
% plot the interiors all the small rectangles
XS=sort(X); YS = sort (Y);
for l=1:(length(XS)-1);
for m=1:(length(YS)-1)
cx=XS(l); dx=XS(l+1);
cy=YS(m); dy=YS(m+1);
success=0; % don't fill a rectangle more than once (will show up darker then)
for i=1:n
ax=X(2*i-1); bx=X(2*i);
ay=Y(2*i-1); by=Y(2*i);
if ax <= cx & dx <= bx & ay <= cy & dy <= by & success ==0
success=1;
fill([cx dx dx cx], [cy cy dy dy], color'/2, 'FaceAlpha', 0.3, 'linewidth', 0.01, 'EdgeAlpha', 0);
end
end
end
end
% plot the edges of all rectanges
for i=1:n
ax=X(2*i-1); bx=X(2*i);
ay=Y(2*i-1); by=Y(2*i);
for l=1:length(XS);
u=XS(l);
if ax < u & u < bx
plot([u u], [ay, by], 'linewidth', lw, 'color', color);
end
end
for l=1:length(YS);
v=YS(l);
if ay < v & v < by
plot([ax bx], [v, v], 'linewidth', lw, 'color', color);
end
end
end
saveas(gcf, 'simple_set2.eps', 'psc2');
function round_ball(z, r, color)
x=real(z); y=imag(z);
Theta = 0:0.1:2*pi;
X = r*cos(Theta)+x;
Y = r*sin(Theta)+y;
Handle = fill(X, Y, color);
set(Handle, 'EdgeColor', color);
此math图片可使用矢量图形重新创建为SVG文件。这具有很多好处;更多信息请参见共享资源:待清理媒体。如果存在此图片的SVG格式,请将其上传,然后将此模板替换为
{{vector version available|新图片名称}}。
建议您将SVG命名为“Simple set2.svg”,这样在使用Vector version available(或Vva)模板时就不需要填写新图片名称参数。 |
说明
添加一行文字以描述该文件所表现的内容
此文件中描述的项目
描繪內容
某些值没有维基数据项目
著作权持有者释出至公有领域 简体中文(已转写)
7 2 2007
image/png
文件历史
点击某个日期/时间查看对应时刻的文件。
| 日期/时间 | 缩略图 | 大小 | 用户 | 备注 | |
|---|---|---|---|---|---|
| 当前 | 2007年2月7日 (三) 05:01 | 1,267 × 1,014(6 KB) | wikimediacommons>Oleg Alexandrov | Made by myself with matlab. |
文件用途
以下页面使用本文件: