在找到一条线的位置的同时改变结果

时间:2013-07-04 07:07:32

标签: matlab geometry line point

这是参考 - Determine which side of a line a point lies

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

我得到不同的结果,使用行列式,结果大约多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位

任何帮助将不胜感激。

由于

thedorkknight

0 个答案:

没有答案