这是参考 - 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