簡體   English   中英

貝塞爾曲線與圓的交點

[英]Point of intersection between bezier curve and circle

我旨在創建以下內容(連接兩個節點的有向箭頭): 目標

目前,我有這個(從一個節點的中心點到另一個節點的中心繪制的二次貝塞爾曲線):

當前

(請注意,我已在節點上方繪制了貝塞爾曲線,以顯示其開始和結束的位置)


我需要一種方法(啟發式或其他方法)來計算貝塞爾曲線和節點(橢圓)圓周之間的交點(上面用紅色圓圈圈出)。

這樣,我可以計算節點中心與相交點之間的角度,以在正確的位置和角度繪制箭頭線。


作為最后的選擇,我可以使用二次Bézier公式來生成沿曲線的點列表,還可以生成在圓的圓周上的點列表,並使用兩個具有最小歐幾里得坐標的坐標之一彼此之間的距離作為我的交點。 我希望任何答案都可以利用幾何學或其他任何方法來更好地解決它。

由於交集方程是四次的( (X(t)-Xc)² + (Y(t)-Yc)²=R² ),其中xy是二次多項式,所以總的問題不(X(t)-Xc)² + (Y(t)-Yc)²=R² 如果您有方便的四次求解器,則可以使用它,但必須選擇正確的根。

一種更合理的方法是將圓與控制點之間的線段相交。 這是近似值,但如果圓半徑很小,可能不會引起注意。 在此處輸入圖片說明

如果需要更高的精度,請從這一點開始執行一兩次牛頓迭代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM