查看: 110|回复: 8|关注: 0

[已答复] 已知各个参数如何画椭圆?

[复制链接]

新手

29 麦片

财富积分


050


19

主题

42

帖子

0

最佳答案
发表于 2020-3-18 15:02:21 | 显示全部楼层 |阅读模式
椭圆一般方程为:A*x*x+B*x*y+C*y*y+D*x+E*y+1=0
我已用算法算出A,B,C,D,E参数的值,即A,B,C,D,E都有赋值,现如何画出该椭圆图像?
  1. ezlot('A*x*x+B*x*y+C*y*y+D*x+E*y+1=0');
复制代码
这样我知道画不出来,正确的语句该怎么写,多谢各位!



论坛优秀回答者

2

主题

922

帖子

177

最佳答案
  • 关注者: 43
发表于 2020-3-18 15:44:45 | 显示全部楼层
使用ezplot函数试试
比如
syms x y
ezplot('x.^2+y.^2-5',[-3,3])

新手

29 麦片

财富积分


050


19

主题

42

帖子

0

最佳答案
 楼主| 发表于 6 天前 | 显示全部楼层
20141303 发表于 2020-3-18 15:44
使用ezplot函数试试
比如
syms x y

您好,ezplot('x.^2+y.^2-5',[-3,3]),您这个公式参数是确定的,我的参数A,B,C,D,E是通过算法求出并且赋值的,不能直接用数字表示,您看还有什么方法绘出图像?

论坛优秀回答者

2

主题

922

帖子

177

最佳答案
  • 关注者: 43
发表于 5 天前 | 显示全部楼层
参数A,B,C,D,E通过算法求出并且赋值后不是也确定了吗

MATLAB 基础讨论
版块优秀回答者

入门

228 麦片

财富积分


50500


20

主题

418

帖子

32

最佳答案
  • 关注者: 2
发表于 5 天前 | 显示全部楼层
用谢中华老师的函数:不能上传链接,只能发给你具体内容了,或者自己查找一下谢中华老师的版面
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 >= 0
    warning('这不是一个椭圆')
    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 <= 0
    warning('这不是一个椭圆')
    return;
end

aa = 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);

新手

29 麦片

财富积分


050


19

主题

42

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层
20141303 发表于 2020-3-24 09:29
参数A,B,C,D,E通过算法求出并且赋值后不是也确定了吗

参数的确是能求出来,但是总不能求一次参数,然后每次再把参数值用手输一遍把。这边我设计的一个界面,只有两个按键,一个导入数据,一个直接计算出参数成图。我意思是每次算出参数后,不用手输一遍,有没有一种代码直接调用参数,然后直接成图。
QQ截图20200324142548.png

论坛优秀回答者

2

主题

922

帖子

177

最佳答案
  • 关注者: 43
发表于 5 天前 | 显示全部楼层
没太明白

新手

29 麦片

财富积分


050


19

主题

42

帖子

0

最佳答案
 楼主| 发表于 5 天前 | 显示全部楼层

您在上面写的代码ezplot('x.^2+y.^2-5',[-3,3]),这个代码里面的参数是已知数字,是要您用手输进去的,我这边求出的是已经赋值的A,B,C,D,E参数,我意思能不能不用手输参数,每次参数求出来,直接调用这个参数,直接成图。

论坛优秀回答者

2

主题

922

帖子

177

最佳答案
  • 关注者: 43
发表于 5 天前 | 显示全部楼层
使用调用函数[A,B,C,D,E]=function()
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表