MATLAB做高中三维立体图之圆锥曲面与平面相交

标签:
教育matlab画图三维立体图圆锥曲线圆锥曲面 |
(matlab算法及编程咨询,画图,解方程组,最优化:http://shop108557885.taobao.com)
参数方程:
球面:
椭球面:
椭圆抛物面:
双叶双曲面:
图形:
球面:
椭球面:
抛物面:
双曲面:
附:MATLAB代码(球面的)
%%
%大圆
R=30;
X0=[0,R,0];
[ x1 y1 z1 ] = sphere(400);
colormap(flipud(gray));
X=x1 * R+X0(1);Y=y1 * R+X0(2);Z=z1 * R+X0(3);
surf(X,Y,Z);
shading interp
alpha( 0.1 ); % 透明
axis equal;
hold on;
%%
%小圆
r=20;
x0=[0,r,0];
[ x2 y2 z2 ] = sphere(400);
colormap(flipud(gray));
x=x2 * r+x0(1);y=y2 * r+x0(2);z=z2 * r+x0(3);
surf(x,y,z);
shading interp
alpha( 0.15 ); % 透明
hold on
%%
% 直线1
a1=0;b1=tan(33/180*pi);c1=0;
lx1=-R:1:R;
ly1=0:1:2*R;
[lx1 ly1]=meshgrid(lx1,ly1);
lz1=a1*lx1+b1*ly1+c1;
%%
%直线2
a2=0;b2=-tan(13/180*pi);c2=0;
lx2=-R:1:R;
ly2=0:1:2*R;
[lx2 ly2]=meshgrid(lx2,ly2);
lz2=a2*lx2+b2*ly2+c2;
hold on
surf(lx1,ly1,lz1)
% shading interp
alpha( 0.3 );
hold on
surf(lx2,ly2,lz2)
alpha( 0.3 );
grid off