日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

双圆弧插值算法(二)

發布時間:2023/11/28 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双圆弧插值算法(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

雙圓弧插值算法(二)

找到中心

找到連接點后,就可以求解圓心。我們定義一個向量,n1,垂直于t1。這最終是一個與(c1?p1)平行的標準化向量。從p1到c1的方向。

綜合起來,我們得到了c1的解。

通過檢查上述方程中的分母,我們可以看出,如果p1到pm的向量與t1共線,它將為零。圓的中心基本上被推到無窮遠,這給我們留下了p1和pm之間的一條直線,而不是一條弧。

對c2使用相同的方法得出:

選擇方向

現在我們需要選擇圍繞中心點旋轉的方向。這取決于d1和d2的符號。對于正的情況,我們選擇繞圓較短的路徑。對于否定的情況,我們走更長的路。讓我們看一些例子。

這種情況類似于初始標記圖中顯示的圖像。d1和d2均為陽性。第一個切線點朝向q1,第二個切線點遠離q2。

這里我們有相同的端點,但是d1和d2是負數。第一個切線點遠離q1,第二個切線點朝向q2。如你所見,我們沿著兩個圓圈走較長的路。

這個案子有點復雜。d1為負數,d2為正數。第一個切點遠離q1,第二個切點遠離q2。我們只走第一圈的長路。這導致灰線在下午折疊回自己。

最后一步是求解旋轉角。為了幫助解決這個問題,我們將定義×操作符,如下所示。

這就給了我們三維叉積的z分量。它相當于∣a∣b∣sinα,其中α是向量a和向量b之間的角度。由于sin值,我們可以根據正或負結果來確定旋轉方向。

如果圓弧的半徑為零,則可以將角度設置為零。否則,計算如下:


選擇d1

選擇d1的值對biarc的形狀有很大的影響。負值將使其變長和彎曲。接近零的值將使第一個弧緊湊。有些值甚至可以創建沒有解決方案的案例。

例如,在右邊的圖像中,選擇了d1,使得q1位于通過第二個控制點的切線上。這導致連接點直接位于q2上,我們只能為第二個弧繪制一條直線。

通常,最好自動選擇d1值。最簡單可接受的方法是選擇一個使d1=d2的值。這將創建一條相當平衡的曲線,并簡化了一些計算。把連接點方程中的d1換成d2,然后求解。

通常,最好自動選擇d1值。最簡單可接受的方法是選擇一個使d1=d2的值。這將創建一條相當平衡的曲線,并簡化了一些計算。把連接點方程中的d1換成d2,然后求解。

案例1:

當二次公式可計算時,一個解是正解,另一個解是負解。我們總是想要正解,因為它代表了較短的弧。分母總是正的,判別式將大于(v?t)2,所以選擇正數形式會得到一個正的結果。

案例2:

因為切線是標準化的,所以所有輸入都創建一個大于或等于零的判別式。所以我們不需要擔心平方根。但是,當切線相等時,分母可以計算為零。為了支持這種情況,我們可以再次求解d2。

案例3:

我們需要處理的最后一個邊情況發生在切線相等且v垂直于它們時。這將在情況2的解決方案中創建一個零分母,意味著d1和d2處于無限遠的距離。這可以用兩個半圓來處理,如下所示:

總結

以上是生活随笔為你收集整理的双圆弧插值算法(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。