【问题标题】:Converting from cartesian coordinates to log-polar coordinates从笛卡尔坐标转换为对数极坐标
【发布时间】:2010-11-13 11:52:53
【问题描述】:

我想将笛卡尔坐标系中给出的一些点坐标转换为对数极坐标笛卡尔坐标系。

但是,我不确定如何很好地执行 atan 操作。

目前,我是这样做的,看起来很丑。

   Xlp = zeros(n, 2);
   Xlp(:, 1) = log(sqrt(Xt(:, 1).^2 + Xt(:, 2).^2));
   sel = Xlp(:, 1) >= 0 && Xlp(:, 2) >= 0;
   Xlp(sel, 2) = atan(Xt(sel, 2) / Xt(sel, 1));
   sel = Xlp(:, 1) >= 0 && Xlp(:, 2) < 0;
   Xlp(sel, 2) = repmat(2*pi, size(sel), 1) + atan(Xt(sel, 2) / Xt(sel, 1));
   sel = Xlp(:, 1) < 0 && Xlp(:, 2) >= 0;
   Xlp(sel, 2) = repmat(pi, size(sel), 1) + atan(Xt(sel, 2) / Xt(sel, 1));
   sel = Xlp(:, 1) < 0 && Xlp(:, 2) < 0;
   Xlp(sel, 2) = repmat(pi, size(sel), 1) + atan(Xt(sel, 2) / Xt(sel, 1));

输入点在 Xt 中,第一列是 X 坐标值,第二列是 Y 坐标值。 Xlp 包含对数极坐标,第一列对应距离,第二列对应角度。

【问题讨论】:

标签: matlab coordinate-systems


【解决方案1】:

我愿意

[THETA,RHO] = cart2pol(X,Y)
RHO=log(RHO)

?

【讨论】:

    【解决方案2】:

    使用atan2() 为您完成所有这些艰苦的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多