这是参考 -确定点位于直线的哪一侧
这是一个观察 - 我正在尝试使用上述两种技术来计算符合我标准的点,即使用两个参考点和第三点进行比较的行列式。另外,我正在使用斜率方法。在这里,我已经有一个参考角度、一个固定点和其他需要检查的变化点。所以基本上我正在检查线条与水平线的角度。
我得到了不同的结果,使用行列式,结果大约多出 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 位
任何帮助将不胜感激。
谢谢
夜叉骑士