點到圓弧的距離

2021-07-11 14:12:15 字數 1242 閱讀 4797

輸入包含最多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 -1

3 4 0 5 -3 4 0 1

case 1: 1.414

case 2: 4.000

湖南省第十屆大學生計算機程式設計競賽

ps:分兩種情況:

第一種:點跟圓心的連線在那段扇形的圓弧範圍內,點到圓弧的最短距離為點到圓心的距離減去半徑然後取絕對值;

第二種:點跟圓心的連線不在那段扇形的圓弧範圍內,點到圓弧的最短的距離為到這段圓弧的兩個端點的最小值。

**如下:(參考夏笑聲)

[cpp]view plain

copy

print

?#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...