在線p1,p4上投影一個三次貝塞爾p1,p2,p3,p4。當p2或p3不投影到p1和p4之間的線段上時,曲線將從錨點凸出。有沒有辦法計算曲線的切線垂直於錨線的T值?計算切線垂直於錨線的三次貝塞爾T值
這也可以被描述爲找到投影曲線離線段p1,p4的中心最遠的T值。當p2和p3投影到線段上時,則解分別爲0和1。有沒有解決更有趣的案例的方程式?
T值似乎只取決於映射控制點距錨線段的距離。
我可以通過提煉猜測來確定價值,但我希望有更好的方法。
編輯:
與P1開始,...,P4與值X1,Y1,2D ...,X4,Y4我使用基於答案從菲利普下面的代碼:
dx = x4 - x1;
dy = y4 - y1;
d2 = dx*dx + dy*dy;
p1 = ((x2-x1)*dx + (y2-y1)*dy)/d2;
p2 = ((x3-x1)*dx + (y3-y1)*dy)/d2;
tr = sqrt(p1*p1 - p1*p2 - p1 + p2*p2);
t1 = (2*p1 - p2 - tr)/(3*p1 - 3*p2 + 1);
t2 = (2*p1 - p2 + tr)/(3*p1 - 3*p2 + 1);
在我看的樣本中,t2必須從1.0中減去,然後才能正確。
您也可以嘗試http://mathoverflow.net/ – 2010-04-20 05:25:13