これは以下を参照しています -点が線のどちら側にあるかを判断する
これは観察です-上記の手法の2つ、つまり2つの参照ポイントと比較する3番目のポイントを使用した決定要因を使用して、基準を満たすポイントを数えようとしています。また、代わりに勾配法を使用しています。ここでは、参照角度、固定された 1 つのポイント、およびチェックする必要がある他のさまざまなポイントが既にあります。基本的には線が水平線に対してなす角度をチェックしています。
私は異なる結果を得ています.行列式では、結果は約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 ビットを使用しています
どんな助けでも大歓迎です。
ありがとう
ダークナイト