輸入包含最多10000組資料。每組資料報含8個整數x1, y1, x2, y2, x3, y3, xp, yp。圓弧的起點是a(x1,y1),經過點b(x2,y2),結束位置是c(x3,y3)。點p的位置是 (xp,yp)。輸入保證a, b, c各不相同且不會共線。上述所有點的座標絕對值不超過20。
對於每組資料,輸出測試點編號和p到圓弧的距離,保留三位小數。你的輸出和標準輸出之間最多能有0.001的誤差。
0 0 1 1 2 0 1 -13 4 0 5 -3 4 0 1
case 1: 1.414湖南省第十屆大學生計算機程式設計競賽case 2: 4.000
ps:分兩種情況:
第一種:點跟圓心的連線在那段扇形的圓弧範圍內,點到圓弧的最短距離為點到圓心的距離減去半徑然後取絕對值;
第二種:點跟圓心的連線不在那段扇形的圓弧範圍內,點到圓弧的最短的距離為到這段圓弧的兩個端點的最小值。
**如下:(參考夏笑聲)
[cpp]view plain
copy
?#include
#include
#include
#include
#include
using
namespace
std;
const
double
pi = acos(-1.0);
struct
point
};
point p1, p2, p3, pc, pp;
double
r;
point get_pc1(point p1, point p2, point p3) //求圓心
double
dis(point a,point b)
double
mult_cha(point p1,point p2)
//叉積
double
get_ans(point pc,point pp,point p1,point p2,point p3)
else
//向上凸
} else
else
} } int
main()
return
0;
}
點到圓弧的距離
time limit1000 ms memory limit131072 kb 輸入包含最多10000組資料。每組資料報含8個整數x1,y1,x2,y2,x3,y3,xp,yp。圓弧的起點是a x1,y1 經過點b x2,y2 結束位置是c x3,y3 點p的位置是 xp,yp 輸入保證a,b,c各...
點到線段的距離
最近由於工作任務的需要簡單研究了一下 1.可以列方程組,但太麻煩,繁瑣,不適合程式中執行 這種方法靠譜但還不夠精簡 3.用向量的方法,簡單實用,效率高。以下是我用as實現的 點到線段的距離 as 實現 var a point new point 0,0 線段起始點 var b point new p...
點到曲線的距離
1 正交 正交是直觀概念中垂直的推廣,如果兩個向量正交,則這兩個向量垂直,其點乘為0.2 點到隱曲線的距離 假設點座標為 dx,dy 曲線方程為f x,y 0,從隱曲線最近點 u,v 到該點的向量必垂直於曲線,因此可以通過尋找滿足下式的點獲得最近點 1 u,v 是曲線上的一點,滿足f u,v 0 2...