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