0

这是参考 -确定点位于直线的哪一侧

这是一个观察 - 我正在尝试使用上述两种技术来计算符合我标准的点,即使用两个参考点和第三点进行比较的行列式。另外,我正在使用斜率方法。在这里,我已经有一个参考角度、一个固定点和其他需要检查的变化点。所以基本上我正在检查线条与水平线的角度。

我得到了不同的结果,使用行列式,结果大约多出 3%。基本上,考虑更多的点。

知道为什么会发生这种情况。这个错误是否与四舍五入有关,如果这与四舍五入错误有关,哪种方法可靠?我在 matlab 中使用 tand() 计算角度然后进行比较,并使用 det() 函数来查找行列式的值。

比较角度时的代码如下图

angle = E(l);
    while i+1 < len_y                       % Y co-ordinates
        while j+1 < len_x                   % X co-ordinates [The manner of saving the 2D matrix and the analysis are both in sync.]
            if z_1(i,j) <= z_1(i,j+1)       % check for the first peak
                j = j + 1;
            else z_1(i,j) > z_1(i,j+1);     % this is the first peak, where we set up the line
                while j+1 < len_x           % set up a line using the angle
                    z0 = z_1(i,j);          % this is the first point of the line
                    x0 = X(j);              
                        x1 = x0 + 10;           % problem solved.
                z1 = z0  - (tand(E(l)) * (x1 - x0)); % this is to setup the line to compare is a point is below or above it
                    j = j + 1;
                    trial_angle = atand((z0 - z_1(j))/(X(j) - x0));

                    while trial_angle > E(l) & j < len_x;         % check the first point of intersection of the line
                        j = j + 1;
                        trial_angle = atand((z0 - z_1(j))/(X(j) - x0));

                    end % end of points which are not in contact

我正在使用 MATLAB 2012 和 Win7 64 位

任何帮助将不胜感激。

谢谢

夜叉骑士

4

0 回答 0