关于contourslice函数的不明白之处。
조회 수: 3 (최근 30일)
이전 댓글 표시

取弧面与圆柱面的交线的坐标数据时,为何用元胞数值存储?代码见下:
R=40;
t=linspace(0,pi/4,25);
p=linspace(0,2*pi,25);
[Fia,Theta]=meshgrid(t,p);
X=R*sin(Fia).*cos(Theta);
Y=R*sin(Fia).*sin(Theta);
Z=R*cos(Fia);
surf(X,Y,Z,'linestyle','none');
alpha(0.5);
hold on;
[x,y,z]=cylinder(8);
x=x+8;y=y+7;z(2,:)=50;
surf(x,y,z);
xlabel('x');ylabel('y');zlabel('z');
axis equal tight;grid on;box on;
view(135,0)
figure
[x,y,z]=meshgrid(linspace(-40,40));
f = (x-8).^2+(y-7).^2-64;
S=contourslice(x,y,z,f,X,Y,Z,[0 0]);%画交线
x_intersect=get(S,'XData');
y_intersect=get(S,'YData');
z_intersect=get(S,'ZData');
xlabel('x');ylabel('y');zlabel('z');
axis equal tight;grid on;box on;
view(135,20);
댓글 수: 0
채택된 답변
mhwbrx
2023년 5월 22일
不用避免,因为这两个patch组成了你的截面:
R=40;
t=linspace(0,pi/4,25);
p=linspace(0,2*pi,25);
[Fia,Theta]=meshgrid(t,p);
X=R*sin(Fia).*cos(Theta);
Y=R*sin(Fia).*sin(Theta);
Z=R*cos(Fia);
surf(X,Y,Z,'linestyle','none');
alpha(0.5);
hold on;
[x,y,z]=cylinder(8);
x=x+8;y=y+7;z(2,:)=50;
surf(x,y,z);
xlabel('x');ylabel('y');zlabel('z');
axis equal tight;grid on;box on;
view(135,0)
figure
[x,y,z]=meshgrid(linspace(-40,40));
f = (x-8).^2+(y-7).^2-64;
S=contourslice(x,y,z,f,X,Y,Z,[0 0]);%画交线
S(1).Vertices
S(2).Vertices
x_intersect=get(S,'XData');
y_intersect=get(S,'YData');
z_intersect=get(S,'ZData');
xlabel('x');ylabel('y');zlabel('z');
axis equal tight;grid on;box on;
댓글 수: 0
추가 답변 (1개)
mhwbrx
2023년 5월 22일
不用避免,因为这两个patch组成了你的截面:
R=40;
t=linspace(0,pi/4,25);
p=linspace(0,2*pi,25);
[Fia,Theta]=meshgrid(t,p);
X=R*sin(Fia).*cos(Theta);
Y=R*sin(Fia).*sin(Theta);
Z=R*cos(Fia);
surf(X,Y,Z,'linestyle','none');
alpha(0.5);
hold on;
[x,y,z]=cylinder(8);
x=x+8;y=y+7;z(2,:)=50;
surf(x,y,z);
xlabel('x');ylabel('y');zlabel('z');
axis equal tight;grid on;box on;
view(135,0)
figure
[x,y,z]=meshgrid(linspace(-40,40));
f = (x-8).^2+(y-7).^2-64;
S=contourslice(x,y,z,f,X,Y,Z,[0 0]);%画交线
S(1).Vertices
S(2).Vertices
x_intersect=get(S,'XData');
y_intersect=get(S,'YData');
z_intersect=get(S,'ZData');
xlabel('x');ylabel('y');zlabel('z');
axis equal tight;grid on;box on;
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!