我正在做一个项目,Matlab
需要找到两条线之间的区域(在(xIntersection,yIntersection)
区间[-1,+1]中的一个点相交。所以想法是减去两条线并在[-1,xIntersection之间进行积分] 和 [xIntersection, +1] 对结果求和,如果为负,则更改其符号。
有关如何找到两条线的交点的详细信息,请查看此链接。
我正在使用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
这使我无法对集成结果进行进一步的操作。
- 知道为什么这是返回值吗?
- 知道可能的漏洞吗?