POJ1269(判断线段相交)
生活随笔
收集整理的這篇文章主要介紹了
POJ1269(判断线段相交)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:http://poj.org/problem?id=1269
?
題意:給出兩條直線(4個點),要求判斷出這兩條直線的關系:平行,同線,相交。如果相交還要求出交點坐標。
?
分析:先判斷是否共線,否則判斷是否平行,否則只能相交,求出交點。
//直線AB與直線CD的關系,如果相交就輸出交點坐標 void Solve(Point A,Point B,Point C,Point D) {if(fabs(cross(A,B,C))<=EPS&&fabs(cross(A,B,D))<=EPS) puts("LINE"); //共線else if((B.x-A.x)*(D.y-C.y)==(D.x-C.x)*(B.y-A.y)) puts("NONE"); //平行else //相交{double a1=A.y-B.y;double b1=B.x-A.x;double c1=A.x*B.y-B.x*A.y;double a2=C.y-D.y;double b2=D.x-C.x;double c2=C.x*D.y-D.x*C.y;double x=(b1*c2-b2*c1)/(a1*b2-a2*b1);double y=(a2*c1-a1*c2)/(a1*b2-a2*b1);printf("%.2lf %.2lf\n",x,y);} }
?
總結
以上是生活随笔為你收集整理的POJ1269(判断线段相交)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ2956 (模积和)
- 下一篇: Tomcat虚拟目录的配置