###前提・実現したいこと
球面上のトランスデューサを4つのセクタに分割し異なる初期位相(具体的には0,,π/2,π,2π/3)を与えて下記の様なグラフを作りたいのですが、そこで境界部分をどのように設定していいのかわからず角度のずれたグラフになってしまいます。きれいに90度十字の様なグラフにするにはどのように直せばいいのでしょうか?
上が作りたいグラフ、下が私が作ったグラフです。また実際にはmatlabで角度を調整しています。
###該当のソースコード
clear all;
close all;
h=0;
rho=1000;
Ae=0.001;
t=1;
v=1500;
omega=2pi1000000;
k=omega/v;
r=0.1;
x_start=-0.003;
x_end=0.003;
num_div=51;
delta_x=(x_end-x_start)/num_div;
x=x_start:delta_x:x_end;
y_start=-0.003;
y_end=0.003;
delta_y=(y_end-y_start)/num_div;
y=y_start:delta_y:y_end;
[X,Y]=meshgrid(x,y);
P1=0;
P2=0;
P3=0;
P4=0;
SdeltaS=0;
for i=0:pi/60:pi/3
for j=0:pi/10:(pi/2)-(pi/10)
a=i;
b=j;
x1=rcos(b)sin(a);
y1=rsin(b)sin(a);
z1=rcos(a);
deltaS=r^2sin(a)(pi/60)(pi/10);
R=sqrt((X-x1).^2+(Y-y1).^2+(h+z1).^2);
theta=0;
P=(rhoAe.exp(1iomegat).deltaS.exp(1itheta))./(2pi.R.exp(1ikR));
P1=P1+P;
end
end
for i=0:pi/60:pi/3
for j=pi/2:pi/10:pi-(pi/10)
a=i;
b=j;
x1=rcos(b)sin(a);
y1=rsin(b)sin(a);
z1=rcos(a);
deltaS=r^2sin(a)(pi/60)(pi/10);
R=sqrt((X-x1).^2+(Y-y1).^2+(h+z1).^2);
theta=pi/2;
P=(rhoAe.exp(1iomegat).deltaS.exp(1itheta))./(2pi.R.exp(1ikR));
P2=P2+P;
end
end
for i=0:pi/60:pi/3
for j=pi:pi/10:(3*pi/2)-(pi/10)
a=i;
b=j;
x1=rcos(b)sin(a);
y1=rsin(b)sin(a);
z1=rcos(a);
deltaS=r^2sin(a)(pi/60)(pi/10);
R=sqrt((X-x1).^2+(Y-y1).^2+(h+z1).^2);
theta=pi;
P=(rhoAe.exp(1iomegat).deltaS.exp(1itheta))./(2pi.R.exp(1ikR));
P3=P3+P;
end
end
for i=0:pi/60:pi/3
for j=3pi/2:pi/10:(2pi)-(pi/10)
a=i;
b=j;
x1=rcos(b)sin(a);
y1=rsin(b)sin(a);
z1=rcos(a);
deltaS=r^2sin(a)(pi/60)(pi/10);
R=sqrt((X-x1).^2+(Y-y1).^2+(h+z1).^2);
theta=3pi/2;
P=(rhoAe.exp(1iomega*t).deltaS.exp(1itheta))./(2pi.R.exp(1ikR));
P4=P4+P;
end
end
P=P1+P2+P3+P4;
P=abs(P);
mesh(X,Y,P)
grid on
あなたの回答
tips
プレビュー