一、根据椭圆方程:axx+bxy+cyy+dx+ey = f画椭圆

【例1】已知椭圆方程:xx + 2xy + 3yy + 4x + 5*y = 6
第一种方法: 调用MATLAB自带的ezplot函数画椭圆

ezplot('x^2+2*x*y+3*y^2+4*x+5*y = 6')
axis([-6 3 -3 3]);

图形如下所示:

第二种方法: 调用自编的ellipsefig1函数画椭圆。
ellipsefig1函数的代码如下:

function  h = ellipsefig1(a,b,c,d,e,f)
% 画一般椭圆:ax*x+bx*y+c*y*y+d*x+e*y = f
delta = b^2-4*a*c;
if delta >= 0warning('这不是一个椭圆')return;
end
x0 = (b*e-2*c*d)/delta;
y0 = (b*d-2*a*e)/delta;
r = a*x0^2 + b*x0*y0 +c*y0^2 + f;
if r <= 0warning('这不是一个椭圆')return;
endaa = sqrt(r/a);
bb = sqrt(-4*a*r/delta);
t = linspace(0, 2*pi, 60);
xy = [1 -b/(2*a);0 1]*[aa*cos(t);bb*sin(t)];
h = plot(xy(1,:)-x0,xy(2,:)-y0, 'k', 'linewidth', 2);

ellipsefig1函数的原理是通过配方将一般椭圆方程化为标准椭圆方程,作出标准椭圆曲线,然后通过坐标旋转和缩放得到所要的椭圆曲线图像。

ellipsefig1(1,2,3,4,5,6);

第三种方法: 调用自编的ellipsefig2函数画椭圆。ellipsefig2函数的代码如下:

function  h = ellipsefig2(a,b,c,d,e,f)
% 画一般椭圆:ax*x+bx*y+c*y*y+d*x+e*y = f
P = [a b/2;b/2 c];
delta = b^2-4*a*c;
if delta >= 0warning('这不是一个椭圆')return;
end
x0 = (b*e-2*c*d)/delta;
y0 = (b*d-2*a*e)/delta;
r = a*x0^2 + b*x0*y0 +c*y0^2 + f;
if r <= 0warning('这不是一个椭圆')return;
end[V, D] = eig(P);
aa = sqrt(r/D(1));
bb = sqrt(r/D(4));
t = linspace(0, 2*pi, 60);
xy = V*[aa*cos(t);bb*sin(t)];
h = plot(xy(1,:)-x0,xy(2,:)-y0, 'k', 'linewidth', 2);

ellipsefig2函数的原理是利用线性代数中所讲的二次型化标准型的办法将一般椭圆方程化为标准椭圆方程,先作出标准椭圆曲线,然后通过坐标旋转得到所要的椭圆曲线图像。

ellipsefig2(1,2,3,4,5,6);

【例2】已知椭圆方程:[x,y][3, 1;1, 4][x,y]’ = 5,即3xx + 2xy + 4yy = 5
可用MATLAB自带的ezplot函数,或自编的ellipsefig1和ellipsefig2函数画此椭圆,命令分别如下:

ezplot('3*x^2+2*x*y+4*y^2 = 5')
axis([-2 2 -2 2])ellipsefig1(3,2,4,0,0,5);ellipsefig2(3,2,4,0,0,5);

图形如下所示:

二、根据椭圆中心坐标、长半轴、偏心率和方向角画椭圆

【例3】已知椭圆中心坐标为[1, 2],长半轴为10,短半轴为5,方向角为45°。
调用MATLAB自带的ellipse1函数画此椭圆,ellipse1函数根据椭圆中心坐标、长半轴、偏心率和方向角画椭圆。

ecc = axes2ecc(10,5);  % 根据长半轴和短半轴计算椭圆偏心率
[elat,elon] = ellipse1(1,2,[10 ecc],45);
plot(elat,elon)

图形如下所示:

【ellipse1函数】
语法:
[lat,lon] = ellipse1(lat0,lon0,ellipse,offset,az,ellipsoid,angleUnit,npts)

参考

Matlab如何画椭圆(总结帖)

MATLAB绘制椭圆相关推荐

  1. matlab圆锥曲线,圆锥曲线:MATLAB绘制椭圆方程的图像 来充电吧

    平面内到定点F1,F2的距离等于常数2*a的动点轨迹叫做椭圆. 定点F1,F2叫做椭圆的焦点,两焦点的距离为2*c. 对于椭圆的标准方程而言:(1)中心在原点,焦点在x轴上的椭圆标准方程为x^2/a^ ...

  2. MATLAB—绘制椭圆

    绘制圆,变换成椭圆(这里需要一个变换矩阵). MATLAB中的绘制:使用参数方程的形式. figure(1) plot([-5 5],[0 0],'k','LineWidth',1);hold on; ...

  3. 用Matlab绘制正方形圆形椭圆

    利用Matlab绘制正方形.圆形.椭圆形,并填充颜色. 1 绘制正方形 2 绘制圆形 3 绘制椭圆形 绘制正方形 a = 2; % 正方形边长 x = [a/2, -a/2, -a/2, a/2]; ...

  4. MATLAB绘制圆、椭圆、矩形等基本平面图形

    MATLAB绘制基本平面图形 **画线的方法** ***rectangle函数** **画矩形的方法** **旋转矩形的方法** **画圆的方法** **画圆弧的方法** **画椭圆的方法** **画 ...

  5. matlab绘制一组椭圆,在MATLAB中绘制椭圆和椭圆体

    Ellipse文章 Wikipedia有一个简单的JavaScript代码绘制椭圆. 它使用参数形式: x(theta) = a0 + ax*sin(theta) + bx*cos(theta) y( ...

  6. matlab ploty,matlab绘制函数 如何利用matlab的ploty

    最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...

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

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

  8. matlab绘制双叶双曲面,应用MATLAB绘制二次曲面图.doc

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

  9. matlab绘制y x 3 x 1,怎样画x^2+(y-x^(2/3))^2=1的图像,用matlab可以吗?代码是什么?...

    答:也可以用MathCAD MathCAD可以像Word那样方便的输入各种公式,并且公式的写法同手写方式是完全一致的.绘图等更不在话下.如果是教学,撰文等,MathCAD比Matlab好用. 如上.祝 ...

  10. MATLAB 两椭圆重合面积的填充与计算

    文章目录 0. 前言 1. 准备工作 2. 两同心椭圆重合面积的近似填充 2.1 代码 2.2 近似填充示意图 3. 蒙特卡罗两同心椭圆重合面积的计算及填充 3.1 代码 3.2 填充示意图 3.3 ...

最新文章

  1. 知乎热帖:Qt 这么强大为什么火不起来?
  2. eclipse java代码乱码怎么解决_eclipse java 乱码怎么解决
  3. Vue+Video.js播放m3u8视频流(海康威视摄像头+RTMP服务+FFmpeg)
  4. C++学习笔记30:模板与型式参数化
  5. linux区分个系统脚本
  6. 多线程锁--怎么理解Condition
  7. 2021牛客第一场 K.Knowledge Test about Match
  8. python编写ATM类_Python中编写类的各种技巧和方法
  9. ajax绑值,vue.js使用ajax绑定数据之post方法
  10. 在Windows下编译OpenSSL(VS2005)【转】
  11. 数字信号处理matlab版答案,数字信号处理matlab版答案
  12. 回首风之忆(消息类型:聊天记录)
  13. opengl——贴图
  14. 解决:元素内容必须由格式正确的字符数据或标记组成。
  15. java游戏后端日志【6】 -- 初生牛犊不怕虎?
  16. word2016毕业论文不同章节设置不同页眉方法
  17. 4.3.3 风管翻模
  18. 《野蛮生长》--冯仑
  19. 【网络通信】WSAStartup()函数,MAKEWORD的使用
  20. 大疆遥控器向手机充电

热门文章

  1. php 分针和时针重合,分针和时针每天重合多少次?
  2. SQLite之C++封装库CppSQLite使用方法
  3. C++ hash(STL hash)及其函数模板用法详解
  4. C++中 explicit的用法
  5. win7修复计算机消失,Win7一键修复丢失DLL,常见dll丢失一键修复方法
  6. 使用Bigemap下载地图生成GST(Mapinfo格式)地图包
  7. 微信小程序游戏——飞机大战
  8. go技术文章梳理(2018)
  9. MySQL(14) 数据库优化方案
  10. 考研准考证下载方式【当无法下载或者找到地址时】