これら 2 つのサーフェスを y 平面で重ね合わせるにはどうすればよいですか。このコードを試してみましたが、うまくいきませんでした。誰かアイデアを提供できますか?いくつかの方法を試しましたが、すべてうまくいきませんでした。
Cx=1/80;
Cy=1/70;
M=6;
Dr=20;
n=2^(M-1);
Vertex=[0 0 0];
phi = (linspace(-pi,pi,n));
r=(linspace(0,Dr,n))';
x = -r*cos(phi)+Vertex(1);
y = -r*sin(phi)+Vertex(2);
z=(Cx*x.^2+Cy*y.^2)./(1+(1-sqrt(Cx*x.^2+Cy*y.^2).^2)./(x.^2+y.^2))+Vertex(3);
surf(z,x,y)
axis
set(gca, 'YDir','reverse');
xlabel('X-axis','fontweight','bold');
ylabel('Z-axis','fontweight','bold');
zlabel('Y-axis','fontweight','bold');
hold on
Vertex=[pi pi pi];
phi = (linspace(-pi,pi,n));
r=(linspace(0,Dr,n))';
x = -r*cos(phi)+Vertex(1);
y = -r*sin(phi)+Vertex(2);
z=(Cx*x.^2+Cy*y.^2)./(1+(1-sqrt(Cx*x.^2+Cy*y.^2).^2)./(x.^2+y.^2))+Vertex(3);
surf(z,x,y)
axis
set(gca, 'YDir','reverse');
xlabel('X-axis','fontweight','bold');
ylabel('Z-axis','fontweight','bold');
zlabel('Y-axis','fontweight','bold');
編集:
アイデアは、これに似たものを生成することです:
M=5;
n=2^(M-1);
c=1/20;
Dr=1/10;
k=-1;
Vertex=[0 0 0];
phi = (linspace(0,2*pi,n));
r=(linspace(0,Dr,n))';
x = r*cos(phi)+Vertex(1);
y = r*sin(phi)+Vertex(2);
z = (c*((r*cos(phi)).^2+(r*sin(phi)).^2))./ ...
(1+sqrt(1-(1+k)*c^2*((r*cos(phi)).^2+ ...
(r*sin(phi)).^2)))+Vertex(3);
surf(x,z,y);
set(gcf, 'Renderer', 'ZBuffer')
hold on
Vertex=[0 0.399 0];
phi = (linspace(0,2*pi,n));
r=(linspace(0,Dr,n))';
x = r*cos(phi)+Vertex(1);
y = r*sin(phi)+Vertex(2);
z = (c*((r*cos(phi)).^2+(r*sin(phi)).^2))./ ...
(1+sqrt(1-(1+k)*c^2*((r*cos(phi)).^2+ ...
(r*sin(phi)).^2)))+Vertex(3);
surf(x,z,y)