私はプロジェクトに取り組んでおり、Matlab
2 つの線の間の領域を見つける必要があります ((xIntersection,yIntersection)
間隔 [-1,+1] の点で交差しています。したがって、2 つの線を減算して [-1, xIntersection ] と [xIntersection, +1] は、結果を合計し、負の場合は符号を変更します。
2 つの線の交点を見つける方法の詳細については、このリンクを確認してください。
私はMatlab's
functionを使用していますint()
。ここに私のコードのスニペットがあります:
xIntersection = ((x_1 * y_2 - y_1 * x_2) * (x_3 - x_4) - (x_1 - x_2) * (x_3 * y_4 - y_3 * x_4) ) / ((x_1 - x_2) * (y_3 - y_4) - (y_1 - y_2) * (x_3 - x_4));
syms x;
integral = int( line 1 - line 2 expression containing x, x, -1, xIntersection) + int( line 1 - line 2 expression containing x, x, xIntersection, 1)
if(integral < 0),
integral = integral * -1;
end
問題はMatlab
、積分の実際の値ではなく、除算を含む式を返すことです。つまり、次のようになります。
107813370750829368626584124420059/162259276829213363391578010288128
これにより、統合の結果でそれ以上の操作を行うことができなくなります。
- なぜこれが戻り値なのか、何か考えはありますか?
- 抜け穴の可能性について何か考えはありますか?