點到曲線的距離

2021-07-12 03:12:17 字數 707 閱讀 1979

1、正交

正交是直觀概念中垂直的推廣,如果兩個向量正交,則這兩個向量垂直,其點乘為0.

2、點到隱曲線的距離

假設點座標為(dx,dy), 曲線方程為f(x,y)=0, 從隱曲線最近點(u,v)到該點的向量必垂直於曲線,因此可以通過尋找滿足下式的點獲得最近點:

1)(u,v)是曲線上的一點,滿足f(u,v)=0;

2)向量s=(dx,dy)-(u,v), 即 (dx-u, dy-v);

求出所有的s,其中最短的距離即為點到曲線的距離。

關於2)式,若想正交與曲線,則向量放心應平行於麴線上該點的法線方向,(u,v)點的法線向量為

(df/dx, df/dy)

在二維下,可以由該點法線向量確定該點的切線向量(垂直,點乘為0),由上得切線向量t為

(df/dy, -df/dx)

因為向量s與法線平行,則其與切線垂直,得s dot t  = 0,即

(dx-u, dy-v) dot  (df/dy, -df/dx) = 0

化簡得:

df/dy *(dx-u)-df/dx * (dy-v)=0

綜上所述,點到曲線的距離由下方程組確定:

f(u,v)=0

df/dy *(dx-u)-df/dx * (dy-v)=0

上式有點亂,df/dy是f對v求偏導,df/dx是f對u求偏導,(dx-u)中的dx是已知點的座標,(dy-v)中的dy一樣。

點到線段的距離

最近由於工作任務的需要簡單研究了一下 1.可以列方程組,但太麻煩,繁瑣,不適合程式中執行 這種方法靠譜但還不夠精簡 3.用向量的方法,簡單實用,效率高。以下是我用as實現的 點到線段的距離 as 實現 var a point new point 0,0 線段起始點 var b point new p...

點到圓弧的距離

輸入包含最多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。對於每組資料,輸出測試點編號...

點到圓弧的距離

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各...