| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:昏!为了特判斜率无穷大的情况,写了我60+code,求代码量小的算法(本人用的是直线方程的方法)In Reply To:昏!为了特判斜率无穷大的情况,写了我60+code,求代码量小的算法(本人用的是直线方程的方法) Posted by:305636397 at 2011-08-03 14:31:49 当不平行的时候分类讨论一下就是了, 首先已经不平行了,所以最多只有一个直线斜率无穷大 void calculate(Line A,Line B) { double a,b,k,a1,b1,k1; double x,y; if(fabs(A.x2-A.x1)<exp) //A直线斜率无穷大 { x=A.x1; k1=(B.y2-B.y1)/(B.x2-B.x1); a1=B.x1;b1=B.y1; y=k1*(x-a1)+b1; } else if(fabs(B.x2-B.x1)<exp) //B直线斜率无穷大 { x=B.x1; k=(A.y2-A.y1)/(A.x2-A.x1); a=A.x1;b=A.y1; y=k*(x-a)+b; } else { k=(A.y2-A.y1)/(A.x2-A.x1); a=A.x1;b=A.y1; k1=(B.y2-B.y1)/(B.x2-B.x1); a1=B.x1;b1=B.y1; x=(b1-b+(a*k-a1*k1))/(k-k1); y=k*(x-a)+b; } printf("POINT %0.2lf %0.2lf\n",x,y); } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator