matlab判断线段和矩形是否相交
线段和矩形相交,换句话说就是线段上存在至少一个点落在矩阵
为了方便推导,把参数约定下:设线段两个点坐标为r1、r2;矩阵中心坐标为r0,两个轴的单位矢量为e1、e2,对应的边长为2a、2b 。
线段上任意点可以表示为:r=λr1 (1-λ)r2 , 0≤λ≤1
点落在矩阵内部可以表示为:|(r-r0)?e1|≤a,|(r-r0)?e2|≤b
故线段和矩形相交转化为以下数学问题:存在0≤λ≤1,满足|[λr1 (1-λ)r2-r0]?e1|≤a,|[λr1 (1-λ)r2-r0]?e2|≤b 。
写程序则需要具体的判断步骤
判断端点是否在矩阵内部,若|(r1-r0)?e1|≤a且|(r1-r0)?e2|≤b,则r1在矩阵内部;类似的判断r2 。若两者中有一个落在矩阵内部,则线段必定在矩阵内部;若两者都在矩阵外部,做下面判断
代入关系,知存在0≤λ≤1,满足|λ(r1-r2)?e1 (r2-r0)?e1|≤a,|λ(r1-r2)?e2 (r2-r0)?e2|≤b 。
若(r1-r2)?e1==0,或(r1-r2)?e2==0,有前面的判断,线段必然落在矩阵外部
否则,|λ (r2-r0)?e1/(r1-r2)?e1|≤a/|(r1-r2)?e1|,|λ (r2-r0)?e2/(r1-r2)?e2|≤b/|(r1-r2)?e2|,求得
【matlab判断线段和矩形是否相交,长方形中面和面相交的线段叫什么】-a/|(r1-r2)?e1|-(r2-r0)?e1/(r1-r2)?e1≤λ≤a/|(r1-r2)?e1|-(r2-r0)?e1/(r1-r2)?e1,-b/|(r1-r2)?e2|-(r2-r0)?e2/(r1-r2)?e2≤λ≤b/|(r1-r2)?e2|-(r2-r0)?e2/(r1-r2)?e2,取λ1=max(-a/|(r1-r2)?e1|-(r2-r0)?e1/(r1-r2)?e1,-b/|(r1-r2)?e2|-(r2-r0)?e2/(r1-r2)?e2),λ2=min(a/|(r1-r2)?e1|-(r2-r0)?e1/(r1-r2)?e1,b/|(r1-r2)?e2|-(r2-r0)?e2/(r1-r2)?e2),若满足λ1≤λ2
- 男命桃花判断标准!
- “matlab求线性规划最大值“matlab如何求两面相交线
- 平行线分线段成比例定理八字_平行线分线段成比例定理证明?9?3
- 命理:八字常规的旺衰判断方法!
- 八字算命2014年七月二十四日零晨4点出生_八字身旺身弱的判断
- 如何判断一个男生是不是老司机?只需要看这七条
- 如何从八字判断命主几次婚姻 ?
- 痰多是身体发出的什么信号?了解这五点,自己都会判断!
- 关于安培力左手定则判断_判断安培力是用左手定则还是右手定则
- 怎样从八字判断人的性格? 性格多疑的八字