function c=make3d(fun_str,is_cplxgrid,x_min,x_max,precision,in_a,in_b,in_c,diff_n,s_color,is_x_y_z,math_Mode,in_R,is_holdon)

%  函数的使用说明

% 直接显示出函数的图像,及区域极大值(导数为0)、区域极小值(导数为0)

% 输入的参数:

%                                fun_str:函数字符串

%                                                例如:'(2.*x-a)/power((x-1),2)' ,其中,指数都要写成‘power(a,b)’的形式, ‘*’应该写成‘.*’,‘/’应该写成‘./’

%                 is_cplxgrid: 是否构建一个极坐标的复数数据网格。

%                 一般在球状、椭球状模型时才需要构建复数数据网格(圆面),否则一般构建矩形数据网格。

%                              0: 不构建;

%                              >0:产生(is_cplxgrid+1)*(2*is_cplxgrid+1)的极坐标下的复数数据网格,最大半径为1的圆面。

%                                x_max,x_min:需要在x轴的显示的区域极大值(导数为0)或区域极小值(导数为0),也可以视为定义域

%                                precision : 精度

%                                in_a,in_b,in_c:在函数需要用到的参数

%                                                例如:'(2.*x-a)/power((x-1),2)' ,其中,a=in_a

%                                diff_n:导数的阶,求n阶导数。0:不求导;>0: 求导;<0:求积分

%                                s_color :线条颜色,例如‘r'、’b‘

% 线形:-实线 -. 点划线 --长虚线 :短虚线

% 符号 颜色   符号      线形

% b     蓝    .         点

% c     青    。        圈

% g     绿    ×      ×标记

% k     黑    -       实线

% m     紫红  *         星号

% r     红    :       点线

% w     白    -.      点划线

% y     黄    --     虚线

%                                is_x_y_z : 判断以哪个轴进行拉伸,缺省是z轴:x:x轴;y:y轴;z:z轴

%                                is_holdon :是否需要与以前的图像重叠,0:否;1:是

%                                c:返回值,暂时未定义

%               math_Mode:  数学模型,用字符串表示:'球面'、'椭圆锥面'、'椭球面'、'椭圆抛物面'、'双曲抛物面'、'单叶双曲面'、'双叶双曲面'、其他。

%               in_R: 半径

%   +eps 可以避免分母为0

% make3d('x1=sqrt((z+y.^2./b.^2).*a.^2);mesh(real(x1),y,z);hold on;mesh(-real(x1),y,z);title(''双曲抛物面'');',-10,10,0.06,3,1,1,-1,'r','x',-1,1,0);

% make3d('x1=sqrt((z.^2./a.^2+y.^2./b.^2+1).*c.^2);mesh(real(x1),y,z);hold on;mesh(-real(x1),y,z);title(''双叶双曲面'');',-10,10,0.06,3,1,1,-1,'r','x',-1,1,0);

% make3d('z1=sqrt((x.^2./a.^2+y.^2./b.^2-1).*c.^2);mesh(x,y,real(z1));hold on;mesh(x,y,-real(z1));title(''单叶双曲面'');',-10,10,0.06,1,1,1,-1,'r','z',-1,1,0);

if is_holdon

hold on;

x=0;y=0;

else

hold off;

clf;

end

format long;

a=in_a;

b=in_b;

c=in_c;

fn_min=0;fn_max=0;y=0;f2_min=0;tt='';

switch is_x_y_z

case 'x'

if is_cplxgrid==0

fn_min=x_min;fn_max=x_max;        % 设置函数的定义域[fn_min,fn_max]

y=(fn_min):precision:(fn_max*1);z=y;

[y,z]=meshgrid(y,z);        % 产生矩形数据网格

else

x=cplxgrid(is_cplxgrid);y=real(x);z=imag(x); % 产生(is_cplxgrid+1)*(2*is_cplxgrid+1)的极坐标下的复数数据网格,最大半径为1的圆面。

end

eval(fun_str);

case 'y'

if is_cplxgrid==0

fn_min=x_min;fn_max=x_max;        % 设置函数的定义域[fn_min,fn_max]

x=(fn_min):precision:(fn_max*1);z=x;

[x,z]=meshgrid(x,z);        % 产生矩形数据网格

else

y=cplxgrid(is_cplxgrid);x=real(y);z=imag(y); % 产生(is_cplxgrid+1)*(2*is_cplxgrid+1)的极坐标下的复数数据网格,最大半径为1的圆面。

end

eval(fun_str);

otherwise

if is_cplxgrid==0

fn_min=x_min;fn_max=x_max;        % 设置函数的定义域[fn_min,fn_max]

x=(fn_min):precision:(fn_max*1);y=x;

[x,y]=meshgrid(x,y);        % 产生矩形数据网格

else

z=cplxgrid(is_cplxgrid);x=real(z);y=imag(z); % 产生(is_cplxgrid+1)*(2*is_cplxgrid+1)的极坐标下的复数数据网格,最大半径为1的圆面。

x=x.*in_R;y=y.*in_R;

x=x.*a;y=y.*b;

end

switch math_Mode

case '球面'

%  a相当于x0, b相当于y0,c相当于z0,in_R相当于半径R

z1=sqrt(in_R.^2-(x-a).^2-(y-b).^2)+c;

surf(x,y,real(z1),'LineStyle','none');hold on;surf(x,y,real(-z1),'LineStyle','none');title('球面');

case '椭圆锥面'

z1=sqrt((x.^2./a.^2+y.^2./b.^2));

surf(x,y,real(z1),'LineStyle','none');hold on;surf(x,y,real(-z1),'LineStyle','none');title('椭圆锥面');

case '椭球面'

z1=sqrt((1-x.^2./a.^2-y.^2./b.^2).*c.^2);

surf(x,y,real(z1),'LineStyle','none');hold on;surf(x,y,real(-z1),'LineStyle','none');title('椭球面');

case '椭圆抛物面'

z1=x.^2./a.^2+y.^2./b.^2;

surf(x,y,real(z1),'LineStyle','none');hold on;surf(x,y,real(-z1),'LineStyle','none');title('椭圆抛物面');

case '双曲抛物面'

z1=x.^2./a.^2-y.^2./b.^2;

%                 surf(x,y,real(z1),'LineStyle','none');hold on;surf(x,y,real(-z1),'LineStyle','none');title('双曲抛物面');

surf(x,y,real(z1),'LineStyle','none');title('双曲抛物面');

case '单叶双曲面'

z1=sqrt((x.^2./a.^2+y.^2./b.^2-1).*c.^2);

surf(x,y,real(z1),'LineStyle','none');hold on;surf(x,y,real(-z1),'LineStyle','none');title('单叶双曲面');

%                 surf(x,y,real(z1),'LineStyle','none');

case '双叶双曲面'

z1=sqrt((x.^2./a.^2-y.^2./b.^2-1).*c.^2);

surf(x,y,real(z1),'LineStyle','none');hold on;surf(x,y,real(-z1),'LineStyle','none');title('双叶双曲面');

otherwise

title(math_Mode);

eval(fun_str);

end

end

grid on;

xlabel('x轴');ylabel('y轴');zlabel('z轴');

% axis([-10 10 -10 10 -10 10]);

% axis square;

axis equal

调用函数:

>> make3d('',100,-5,5,0.05,2,4,3,-1,'r','z','双叶双曲面',80,0);

>> make3d('',0,-5,5,0.05,2,4,3,-1,'r','z','双叶双曲面',3,0);

x^2/25+y^2/36  肯定是单叶双曲面啊!

单页双曲面 matlab,如何画双叶双曲面相关推荐

  1. 单页双曲面 matlab,在matlab中画函数(x^2+y^2)/9-z^2/4=1的旋转单叶双曲面

    1.用matlabc打开命令行窗口,直接输入相关的内容. 2.下一步如果没问题,就根据实际情况来设置图示的代码. 3.这个时候通过确定操作以后,需要填写注释的信息. 4.这样一来会得到对应的效果图,即 ...

  2. 单页双曲面 matlab,matlab绘制单叶双曲面

    应用 MATLAB 绘制二次曲面图 1.用 surf 工 mesh 函数绘图 Surf 函数绘制的是三维表面图,mesh 函数绘制的是三维网格图,当二次曲面方程是标准方 程时,原方程式...... m ...

  3. 单页双曲面 matlab,生成平面截单叶双曲面的gif动画的程序

    %平面截单叶双曲面 clear clc filename='mianjiedanyeshuangqu.gif'; a=3; b=3; c=4; z = -1.5*c:c/20:1.5*c; [r,al ...

  4. 问题三十五: 怎么用ray tracing画二次曲面(quadratic surfaces)(2)——单页双曲面、双页双曲面、椭圆锥面、椭圆柱面

    35.2.1 数学推导 单页双曲面.双页双曲面.椭圆锥面.椭圆柱面. 这四个二次曲面方程共同形式: 但是,注意到,这些曲面都是开放曲面.在画图时,需要限制曲面的范围(以免曲面覆盖整个画面). 我们在这 ...

  5. Leadtools Document教程:如何高效将数千个 PDF 文件拆分并转换为单页图像

    LEADTOOLS Document Suite SDK是LEADTOOLS SDK功能的全面集合,旨在构建需要OCR,MICR,OMR,ICR,条形码,表单识别和处理,PDF,HTML5 / Jav ...

  6. matlab如何画波特图,matlab画波特图

    Matlab 中 Bode 图的绘制技巧 学术收藏 2010-06-04 21:21:48 阅读 54 评论 0 字号:大中小 订阅 我们经常会遇到使用 Matlab 画伯德图的情况,可能我们我们都. ...

  7. matlab可以画3d图吗,如何用matlab画3d图

    MATLAB三维绘图解读_自考_成人教育_教育专区.MATLAB 上次课内容回顾 1. 2. ? ? ? 3. 4. 5. MATLAB二维绘图 离散函数和数据的可视化; 二维曲线和图形 plot.. ...

  8. java 单页面spa_Javascript 与 SPA单页Web富应用

    书单推荐 # <单页Web应用:JavaScript从前端到后端>http://download.csdn.net/detail/epubitbook/8720475 # <MVC的 ...

  9. 基于html5海贼王单页视差滚动特效

    分享一款基于html5海贼王单页视差滚动特效是一款流行滑落网页特效代码.效果图如下: 在线预览   源码下载 实现的代码: <div class="top"><d ...

最新文章

  1. ABP 基础设施层——集成 Entity Framework
  2. MyBatis 的执行流程,写得太好了!
  3. selenium + python自动化测试unittest框架学习(五)webdriver的二次封装
  4. 160个Crackme020之无OD爆破
  5. [人工智能]手语识别转文字落地深圳医院,厉害了我的腾讯
  6. 命令行下运行JAVA出错:错误的签名:
  7. 驻云学院:实战阿里云之数据库系列
  8. 学生宿舍管理系统——UML 2nd
  9. ArcGIS重采样栅格后栅格数目居然不变(解决)
  10. Unity3D做的DEMO
  11. CF 379F: New Year Tree
  12. c语言:用牛顿迭代法求方程在1.5附近的根:2x^3-4x^2+3x-6=0.
  13. 基于XQ6657Z35-EVM开发平台上TI TMS320C6657 TLV320AIC3206音频设计
  14. 解决WSL2报错(请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化[已退出进程,代码为 4294967295])
  15. 专题·置换【including 置换,置换快速幂,洛谷·[HNOI2001]洗牌机
  16. 使用openssl制作证书和进行CMS格式数字签名
  17. 移动App开发 MUI框架 利用软键盘的搜索键实现页面跳转并传值
  18. cloc JAVA文件_代码统计工具CLOC的使用方法
  19. EBAZ4205矿板使用PS端时钟,给PL端,LED流水灯功能
  20. springboot大杂烩

热门文章

  1. torch对于tensor的常规操作
  2. 七牛云这个API,让我轻松搞定Banner背景自动切换的功能
  3. python提取图片文字
  4. while循环练习题-检测输入数据中奇数和偶数的个数
  5. 微信开放平台-第三方平台-全网发布接入【java版本】
  6. 在matplotlib使用中文坐标轴,设置坐标轴,标题字体及字体大小
  7. Android Studio调用百度地图(二):实现地图显示后台定位和步行导航
  8. 1051: 电报加密
  9. gpu浮点计算能力floaps_为何CPU浮点计算能力差,什么是浮点计算,GPU为何擅长浮点计算?...
  10. 独家:海尔消金“重仓”医美,月放款量惊人