私はこれを今何時間か行う方法を理解しようとしています。 I(x、y)はにプロットなる二つの式のプログラムが実行されるとMatlabは、ユーザの入力が私のプロット上の点であるかどうかをチェックします
x = v*cosd(theta)*t;
y = -(g*t.^2)/2 + v*sind(theta)*t;
plot(x,y)
変数V、シータ、xanimal、yanimalがユーザ入力によって充填されているフォーマットを有します。 xanimalとyanimalは基本的に単一点がどこにあるのか、vとthetaは軌道を作成する上の方程式に入る変数です。 私が探しているのは、ポイント(xanimal、yanimal)がプロット上にあるかプロット(x、y)の0.5以内にあるかを決定する条件文です。 プロット(x、y)は、方程式の値がユーザーの入力を介して入力されるため、常に変化します。
私は何も働いていない別のものを試しました。
One Attempt
for i=1:max(x)
if xanimal == x(i) && yanimal == y
disp('Success')
end
end
また、このメソッドは、事前に
Second Attempt
Xmax_animal = xanimal +.5;
Xmin_animal = x-.5;
Ymax_animal = y+.5
Ymin_animal = y-.5
Y_animal = linspace(max(y),min(y),1)
if(Y_animal>max1)
disp('food fight')
else
a = find(y >= Y_animal);
b = x(a);
d = b(1);
c1 = b(end);
if (Xmax_animal >= d) && (d >= Xmin_animal)
set(handles.edit5, 'String', 'Success')
おかげで動作しませんでした!
"プロット(x、y)の0.5以内"は、ポイントとラインの間のユークリッド距離(y軸上)が0.5を超えてはならないことを意味します。 – obchardon
Matlab Exchangeでは、この機能を利用することができます。https://www.mathworks.com/matlabcentral/fileexchange/34869-distance2curve 問題を解決できますか。 – Eskapp