⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cs_dist.m

📁 利用电磁场的源激发方法来计算光子晶体波导例如光子晶体光纤
💻 M
字号:
function cs_out = cs_dist(vein, d)
xc = vein.xc;
yc = vein.yc;
max_x = vein.max_x+xc;
min_x = vein.min_x+xc;
max_y = vein.max_y+yc;
min_y = vein.min_y+yc;
points = 500;
if d > 0
    D = 1.1*d;
else
    D = (max_x-min_x)/10;
end
max_x = max_x+D;
min_x = min_x-D;
max_y = max_y+D;
min_y = min_y-D;
x = linspace(min_x, max_x, points);
y = linspace(min_y, max_y, points);
[mX, mY] = meshgrid(x,y);
mB = in_shape(mX, mY, xc, yc, vein);
if d < 0
    mB = 1-mB;
end
cnt = contourc(x, y, bwdist(mB), abs([d d])./(max_x-min_x)*points);
frac = 0.06;
pairs = cnt(2,1);
xi = cnt(1,2:pairs+1);
yi = cnt(2,2:pairs+1);
L = length(xi);
ind = round(linspace(1, L, round(frac*L)));
xi = xi(ind);
yi = yi(ind);
N = 500; 
pairs = [xi; yi];
cs_out = cscvn(pairs);
%vT = linspace(cs_out.breaks(1), cs_out.breaks(end), N);
%mF = ppval(cs_out, vT);
%xline = mF(1,:);
%yline = mF(2,:);
%imagesc(x,y,mB);
%hold
%plot(xi, yi, 'r.', xline, yline, 'b', 'linewidth', 2)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -