ellipse_params.m

来自「椭圆拟合的相关介绍与数学运算方法」· M 代码 · 共 41 行

M
41
字号
function [z, a, b, alpha, err] = ellipse_params (u, show);%ELLIPSE_PARAMS Get ellipse params from algebraic equation%%       [z, a, b, alpha, err] = ellipse_params (u, show{0});%       get the ellipse parameters%       from algebraic equation %         u(1)x^2 + u(2)xy + u(3)y^2 + ...%         u(4)x + u(5)y + u(6) = 0.%%       u: coefficients of algebraic equation%       show: == 1, then plot figure if error.%%       z, a, b, alpha: ellipse parameters%       err: != 0, if not an ellipse  if (nargin < 2) show = 0; end;  err = 0;  A   = [u(1) u(2)/2; u(2)/2 u(3)];  bb  = [u(4); u(5)];   c   = u(6);  [Q D] = eig(A);  det   = D(1,1)*D(2,2);  if (det <= 0),    err = 1;    if (show == 1), drawconic (u); end;    z = [0;0];    a = 1; b = 1; alpha = 0;  else     bs    = Q'*bb;    alpha = atan2(Q(2,1), Q(1,1));    zs    = -(2*D)\bs;      z     = Q*zs;    h     = -bs'*zs/2-c;    a     = sqrt(h/D(1,1));    b     = sqrt(h/D(2,2));  endend % ellipse_params  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?