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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

双圆弧插值算法(一)

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

雙圓弧插值算法(一)

Biarc Interpolation

在游戲開發(fā)中經(jīng)常出現(xiàn)兩點(diǎn)間的插值問題。大多數(shù)情況下,只需要一個(gè)簡(jiǎn)單的線性插值。線性插值很好,因?yàn)椴粫?huì)真的弄錯(cuò)。只有一條可能的線連接這些點(diǎn)。跟著走。當(dāng)需要曲線插值時(shí),求解會(huì)變得復(fù)雜得多。有無限數(shù)量的曲線可供選擇,并有許多方法來生成:NURBS、Catmull Rom、Bézier、Hermite等。

想討論一種生成圓形圓弧的不太常見的方法。

為什么想要一個(gè)圓插值?一個(gè)原因可能是看起來很悅目,但也有一些實(shí)際用途。如果正在制作一個(gè)放置道路的水平編輯工具(或使用程序性道路制作游戲),可能希望轉(zhuǎn)彎處與真實(shí)世界中的道路相似。第二個(gè)例子,也是經(jīng)常遇到的一個(gè)例子,是在劍后產(chǎn)生軌跡。揮劍的動(dòng)作通常非常快。當(dāng)劍在攻擊中弧線時(shí),只能得到幾個(gè)樣本點(diǎn)。如果以慢動(dòng)作播放動(dòng)畫,會(huì)發(fā)現(xiàn)劍尖的軌跡相當(dāng)圓。通過在采樣點(diǎn)之間生成圓弧,可以生成干凈的軌跡。

這里有一個(gè)為間諜編程的劍跡的例子。整個(gè)旋轉(zhuǎn)過程中可能只有五到六個(gè)樣本,但能夠創(chuàng)建一個(gè)平滑的頂點(diǎn)弧。Spyborgs算法與將要介紹的有點(diǎn)不同,但是產(chǎn)生了類似的結(jié)果(如果知道要查找什么,實(shí)際上會(huì)稍微差一點(diǎn))。

那么,要如何創(chuàng)建這些曲線呢?解決方案在于一個(gè)稱為biarc的幾何學(xué)。

雙圓弧

雙圓弧是由兩個(gè)圓弧組成的曲線,使與匹配的切線相連。幾乎每一對(duì)控制點(diǎn)都可以通過一個(gè)biarc連接起來,而失敗的控制點(diǎn)在實(shí)踐中并沒有出現(xiàn)。下面是一些將紅色控制點(diǎn)連接到藍(lán)色控制點(diǎn)的biarc示例。

一旦可以求解兩個(gè)控制點(diǎn)之間的biarc,那么將一系列控制點(diǎn)與一系列biarc連接起來就很簡(jiǎn)單了。這就是所謂的分段圓曲線。

目標(biāo)

將生成兩個(gè)圓弧作為輸入。

假設(shè)輸入切線是標(biāo)準(zhǔn)化的。換句話說:

找到連接

在求解弧之前,需要找到連接點(diǎn),pm。


現(xiàn)在可以選擇d1的任意實(shí)數(shù),得到系統(tǒng)的解。根據(jù)值的不同,可以得到一個(gè)短的biarc或一個(gè)長(zhǎng)的螺旋biarc。在右邊的圖像中,可以看到d1的不同值如何生成連接相同兩個(gè)控制點(diǎn)的不同biarc。稍后將討論自動(dòng)為d1選擇一個(gè)令人滿意的值的方法。

邊緣案例

如果d2方程中的分母為零,需要處理d2為無窮大的情況。這意味著t2和連接點(diǎn)的切線是平行的。這將創(chuàng)建一個(gè)半圓(請(qǐng)參見右側(cè)顯示的藍(lán)色弧)。知道連接切線是t2,可以說明以下內(nèi)容:

連接點(diǎn)pm必須位于q1外與t2平行的線上。

從p2到pm的向量必須垂直于t2。

從數(shù)學(xué)上講,這是:

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。