【计算几何】求线段相交交点坐标
2017-03-04 10:57
204 查看
求线段相交交点
首先,我们设 (AD向量 × AC向量) 为 multi(ADC) ; 那么 S三角形ADC = multi(ADC)/2 。
由三角形DPD1 与 三角形CPC1 相似;可得 |DP| / |PC| = |DD1| / |CC1| = multi(ADB) × multi(ACB) 。
|DP| / |PC| = (xD - xP) / (xP - xC) = (yD - yP) / (yP - yC) 。
xP = ((multi(D,B,A) * xC - multi(C,B,A) * xD)) / (multi(D,B,A) - multi(C,B,A));
yP = ((multi(D,B,A) * yC - multi(C,B,A) * yD)) / (multi(D,B,A) - multi(C,B,A));
// 点指针型的函数,相交返回交点坐标,不相交返回NULL point* intersection(V u,V v) { if(Across(u,v)) { point p; V aa,bb; aa.start = v.start; aa.end = u.start; bb.start = v.start; bb.end = u.end; double san1 = cross_mul(aa,bb); aa.start = v.end; aa.end = u.start; bb.start = v.end; bb.end = u.end; double san2 = cross_mul(aa,bb); p.x = (v.end.x*san1 - v.start.x*san2)/(san1-san2); p.y = (v.end.y*san1 - v.start.y*san2)/(san1-san2); return &p; } return NULL; }
相关文章推荐
- 【计算几何初步-线段相交】【HDU1089】线段交点
- 【计算几何初步-线段相交】【HDU1089】线段交点
- POJ 1039-Pipe(计算几何-线段相交、求交点)
- hdu 2857:Mirror and Light(计算几何,点关于直线的对称点,求两线段交点坐标)
- 判断两线段是否相交并计算交点坐标
- POJ 1127Jack Straws (计算几何 + 线段相交)
- HDU 5572 An Easy Physics Problem (计算几何 点类 线类 向量类 线段与圆相交)
- POJ 1556 The Doors (计算几何判断线段相交+最短路)
- 1288: 计算几何练习题——线段相交
- [CG]Intersection of Line Segments(0163)(计算几何,求线段是否相交)
- hdu1086+You can Solve a Geometry Problem too(计算几何,计算线段交点个数)
- 移动微小的距离,线段相交,计算几何(怪物陷阱,LA 2797)
- POJ 3304 计算几何 直线与线段相交
- sgu 129 Inheritance 凸包,线段交点,计算几何 难度:2
- poj2653 Pick-up sticks 计算几何 线段相交
- pku 1556 The Doors 计算几何 之 叉积判断线段是否相交
- 计算几何之判断线段相交
- 土地划分(计算几何——线段相交)
- poj3304 计算几何 线段与直线相交
- POJ 1066 Treasure Hunt [线段相交]【计算几何】