用于曲線擬合的混合技術(shù)的制作方法
【專利說明】用于曲線擬合的混合技術(shù)
[0001] 有關(guān)申請
[0002] 本申請要求于2014年5月12日提交的并且名稱為"Blending Techniques for Curve Fitting "的美國臨時專利申請第61/992,083號的優(yōu)先權(quán)以及于2014年5月28 日提交的并且名稱為"Blending Techniques for Curve Fitting"的美國專利申請第 14/289, 408號的優(yōu)先權(quán),它們的全部公開內(nèi)容通過引用被特此并入于此。
【背景技術(shù)】
[0003] 曲線擬合是指在數(shù)據(jù)點之間的曲線(例如,路徑)的擬合。這可以被用于多種不 同目的,諸如指示用于電子表格的數(shù)據(jù)點相互的對應(yīng)性以繪制動畫路徑、描繪溫度等。
[0004] 然而,用來執(zhí)行曲線擬合的常規(guī)技術(shù)可能偏離利用該功能的用戶的預(yù)期。例如, 在使用常規(guī)技術(shù)的曲線擬合中,在數(shù)據(jù)點之間可能觀察到意料之外的尖峰、回路等,這些尖 峰、回路等沒有"跟隨流動",該流動如用戶預(yù)期的那樣由數(shù)據(jù)點來展現(xiàn)。因此,常規(guī)技術(shù)的 用戶經(jīng)常被迫人工地校正曲線,這可能是令人氣餒和低效的。
【發(fā)明內(nèi)容】
[0005] 描述了用于曲線擬合的混合技術(shù)。在一個或者多個實現(xiàn)方式中,接收三個或者多 個數(shù)據(jù)點的指示?;谌齻€或者更多個數(shù)據(jù)點相互的空間關(guān)系來計算混合因子。通過使用 計算的混合因子混合多個曲線擬合技術(shù)來將曲線擬合到三個或者更多個數(shù)據(jù)點。
[0006] 在一個或者多個實現(xiàn)方式中,一種系統(tǒng)包括至少部分在硬件中實現(xiàn)的一個或者多 個模塊。該一個或者多個模塊被配置為執(zhí)行操作,這些操作包括接收用以將曲線擬合到多 個數(shù)據(jù)點的指示,確定多個數(shù)據(jù)點相互的空間關(guān)系以及混合多個曲線擬合技術(shù)以執(zhí)行曲線 的擬合,該混合使用基于確定的空間關(guān)系的至少一個試探。
[0007] 在一個或者多個實現(xiàn)方式中,一個或者多個計算機可讀存儲介質(zhì)包括在其上存儲 的指令,這些指令響應(yīng)于由計算設(shè)備執(zhí)行來使得計算設(shè)備執(zhí)行操作,這些操作包括基于曲 線將被擬合到的多個數(shù)據(jù)點的空間關(guān)系來選擇應(yīng)用多個曲線擬合技術(shù)中的哪些曲線擬合 技術(shù),以及使用多個曲線擬合技術(shù)中的選擇的曲線擬合技術(shù)來將曲線擬合到多個數(shù)據(jù)點。
[0008] 在一個或者多個實現(xiàn)方式中,一種系統(tǒng)包括至少部分地在硬件中實現(xiàn)的一個或者 多個模塊,該一個或者多個模塊被配置為執(zhí)行操作,這些操作包括通過以下步驟配置用戶 接口以支持復(fù)雜曲線的直接編輯:配置直接地設(shè)置在復(fù)雜曲線上的接觸點以支持由用戶指 定的移動,以及自動地并且在沒有用戶干預(yù)的情況下調(diào)整復(fù)雜曲線的相應(yīng)的所述曲線,使 得相應(yīng)的所述曲線維持相對于復(fù)雜曲線的斜率和曲率連續(xù)性。
[0009] 本
【發(fā)明內(nèi)容】
以簡化的形式介紹以下在【具體實施方式】中進一步描述的概念選集。這 樣,本
【發(fā)明內(nèi)容】
不旨在于標(biāo)識要求保護的主題內(nèi)容的實質(zhì)特征,它也不旨在于用作輔助確 定要求保護的主題內(nèi)容的范圍。
【附圖說明】
[0010] 參照附圖來描述【具體實施方式】。在圖中,標(biāo)號的最左位標(biāo)識了標(biāo)號首次出現(xiàn)的圖。 在描述和圖中的不同實例中使用相同標(biāo)號可以指示相似或者完全相同的項。在圖中表示的 實體可以指示一個或者多個實體,并且因此在討論中可以可互換地參照實體的單數(shù)或者復(fù) 數(shù)形式。
[0011] 圖1是在示例實現(xiàn)方式中可操作為運用在此描述的技術(shù)的環(huán)境的圖示。
[0012] 圖2更具體地描繪了示例實現(xiàn)方式中的系統(tǒng),連同可以由曲線擬合模塊運用的曲 線擬合技術(shù)的示例,該系統(tǒng)示出了圖1的混合模塊。
[0013] 圖3描繪了用以由混合模塊生成混合因子的對稱性試探的使用示例,該對稱性試 探指定使用曲線擬合技術(shù)中的不同曲線擬合技術(shù)。
[0014] 圖4描繪了圖3的數(shù)據(jù)點中的一個數(shù)據(jù)點與用來將曲線擬合到數(shù)據(jù)點的混合因子 的作為結(jié)果的改變的空間關(guān)系的重新布置的示例。
[0015] 圖5描繪了用以由混合模塊生成混合因子的平坦度試探的使用示例,該平坦度試 探指定使用曲線擬合技術(shù)中的不同曲線擬合技術(shù)。
[0016] 圖6描繪了用以由混合模塊生成混合因子的符號試探的使用示例,該符號試探指 定使用曲線擬合技術(shù)中的不同曲線擬合技術(shù)。
[0017] 圖7示出了復(fù)合曲線的示例的構(gòu)造示例,在該復(fù)合曲線中通過將具有Gl連續(xù)性的 多個二次貝塞爾段組成在一起來構(gòu)造更長的κ曲線(KCurve)。
[0018] 圖8描繪了如示例算法中所示可以用公式表示的優(yōu)化方案。
[0019] 圖9描繪了模式的局部行為的示例。
[0020] 圖10描繪了用于求解包含多達一萬個隨機地生成的點的K曲線的示例系統(tǒng)。
[0021] 圖11描繪了使用在此描述的技術(shù)與三次Catmull-Rom樣條插值技術(shù)來比較樣條 曲線的示例。
[0022] 圖12是描繪了示例實現(xiàn)方式中的過程的流程圖,在該過程中利用混合因子以將 曲線擬合到三個或者更多個數(shù)據(jù)點。
[0023] 圖13是描繪了示例實現(xiàn)方式中的過程的流程圖,在該過程中選擇多個曲線擬合 技術(shù)中的一個曲線擬合技術(shù)以將曲線擬合到多個數(shù)據(jù)點。
[0024] 圖14圖示了包括示例設(shè)備的各種部件的示例系統(tǒng),該設(shè)備可以被實現(xiàn)為如描述 的任何類型的計算設(shè)備和/或參照圖1-13用來實施在此描述的技術(shù)的實施例。
【具體實施方式】
[0025] 歷
[0026] 用來將曲線擬合到數(shù)據(jù)點的常規(guī)技術(shù)可能缺乏充分直觀的交互和易用性。進一步 地,這些常規(guī)技術(shù)也可能產(chǎn)生諸如由于包括尖峰、回路等而偏離用戶的預(yù)期的曲線,這些尖 峰、回路等沒有表現(xiàn)為跟隨其余數(shù)據(jù)點并且因此偏離用戶對曲線的擬合的預(yù)期。
[0027] 描述了用于曲線擬合的混合技術(shù)。在一個或者多個實現(xiàn)方式中,運用混合技術(shù)來 混合不同曲線擬合技術(shù),以將曲線擬合到諸如用于電子表格的多個數(shù)據(jù)點以繪制動畫路 徑、描繪溫度等。例如,計算設(shè)備可以接收連續(xù)數(shù)據(jù)點的指示,通過這些數(shù)據(jù)點,曲線將被擬 合為點之間的路徑。試探被用來基于數(shù)據(jù)點相互的空間關(guān)系,諸如基于對稱性、平坦度、曲 率符號等來計算混合因子。
[0028] 然后,該混合因子可以被用來選擇多個曲線擬合技術(shù)中的哪些曲線擬合技術(shù)將被 用來擬合曲線以及如何將兩個或者更多技術(shù)中混合在一起。例如,計算設(shè)備可以使用二次 貝塞爾曲線擬合技術(shù)來進行估計,例如估計用于數(shù)據(jù)點的曲線的切線方向和曲率半徑。然 后,這些估計可以用作基礎(chǔ)以確定如何將其它曲線擬合技術(shù),諸如三次貝塞爾曲線擬合技 術(shù)與圓形曲線估計技術(shù)混合在一起。這樣,混合可以被用來以直觀方式擬合曲線,可以關(guān)于 以下章節(jié)來發(fā)現(xiàn)其進一步的討論。
[0029] 在以下討論中,首先描述了可以運用在此描述的混合技術(shù)的示例環(huán)境。然后描述 了示例過程,該示例過程可以在示例環(huán)境以及其它環(huán)境中被執(zhí)行。因此,示例過程的執(zhí)行不 限于示例環(huán)境,并且示例環(huán)境不限于執(zhí)行示例過程。
[0030] 示例環(huán)境
[0031] 圖1是在示例實現(xiàn)方式中可操作為運用在此描述的技術(shù)的環(huán)境100的示圖。所示 的環(huán)境100包括可以以多種方式來配置的計算設(shè)備102。
[0032] 例如,計算設(shè)備102可以被配置為桌上型計算機、膝上型計算機、移動設(shè)備(例如, 采用諸如平板或者移動電話的手持配置)等。例如如圖所示,計算設(shè)備102在移動配置中 被配置為平板,該平板包括具有觸屏功能的顯示設(shè)備104,該觸屏功能被配置為識別觸摸輸 入,諸如來自用戶的手106的觸摸輸入。因此,計算設(shè)備102的范圍可以從具有大量存儲器 和處理器資源的全資源設(shè)備(例如,個人計算機、游戲控制臺)到具有有限存儲器和/或處 理資源的低資源設(shè)備(例如,移動設(shè)備)。此外,盡管示出了單個計算設(shè)備102,但是計算設(shè) 備102可以代表多個不同設(shè)備,諸如企業(yè)用來如關(guān)于圖14進一步描述的那樣"通過云"來 執(zhí)行操作的多個服務(wù)器。
[0033] 計算設(shè)備102被圖示為包括曲線擬合模塊108。該曲線擬合模塊108代表與將曲 線擬合到多個數(shù)據(jù)點110有關(guān)的功能以及與曲線的交互(例如,修改)有關(guān)的功能。盡管 圖示為在計算設(shè)備102上實現(xiàn),但是曲線擬合模塊108可以以多種方式來實現(xiàn),諸如遠程地 經(jīng)由"在云上"經(jīng)由網(wǎng)絡(luò)112可訪問的服務(wù)提供商的web服務(wù)、分布在服務(wù)提供商與計算設(shè) 備102之間等。
[0034] 在所示的示例中,用戶接口 114被圖示為顯示多個數(shù)據(jù)點116、118、120、122作為 經(jīng)由手勢的輸入,該手勢經(jīng)由顯示設(shè)備104的觸屏功能來檢測,諸如通過使用一個或者多 個電容傳感器。這可以作為各種不同功能的一部分來執(zhí)行,諸如指定路徑、經(jīng)由該路徑將使 對象成為動畫,用來指定用于圖像處理的接縫等。還設(shè)想了其它示例,諸如從電子表格接收 的數(shù)據(jù)點110、傳感器讀數(shù)、演示軟件等。
[0035] 曲線擬合模塊108在接收到數(shù)據(jù)點116-122時,然后可以自動地并且在沒有用戶 干預(yù)的情況下基于數(shù)據(jù)點116-122來擬合曲線124。例如,曲線擬合模塊108可以被配置 為運用多個不同曲線擬合技術(shù)126,諸如二次貝塞爾曲線技術(shù)、三次貝塞爾曲線技術(shù)和圓形 曲線估計技術(shù)。在面對數(shù)據(jù)點110的不同空間關(guān)系時,這些曲線擬合技術(shù)126中的每個曲 線擬合技術(shù)可以具有優(yōu)勢和弱點。因此,曲線擬合模塊108可以運用混合模塊128,該混合 模塊代表用以選擇曲線擬合技術(shù)126中的哪些曲線擬合技術(shù)用于特定數(shù)據(jù)點集合110,以 及如何將多個曲線擬合技術(shù)126混合到一起以實現(xiàn)被擬合到點的曲線124的最終結(jié)果的功 能。這樣,曲線擬合模塊108可以被配置為擬合曲線124,該曲線124既可視地怡人又被曲 線擬合模塊108的用戶"所預(yù)期",其進一步的討論如下并且在對應(yīng)的圖中示出。
[0036] 圖2更具體地描繪了示例實現(xiàn)方式中的系統(tǒng)20,連同可以由曲線擬合模塊108運 用的曲線擬合技術(shù)126的示例,該系統(tǒng)20示出了圖1的混合模塊128。曲線擬合模塊108 被圖示為接收指定數(shù)據(jù)點110的輸入并且輸出被擬合到那些數(shù)據(jù)點的曲線124。為了執(zhí)行 該擬合,曲線擬合模塊108可以運用混合模塊128,該混合模塊128代表用以選擇曲線擬合 技術(shù)126中的哪些(以及甚至"多少")曲線擬合技術(shù)將被應(yīng)用于擬合曲線124的功能。
[0037] 為了輔助該選擇,混合模塊128可以運用試探模塊202,該試探模塊202代表用以 運用一個或者多個試探以指導(dǎo)曲線的擬合的功能。例如,試探可以基于數(shù)據(jù)點110相互的 空間關(guān)系以便于擬合曲線,諸如基于數(shù)據(jù)點110的指定的順序和那些數(shù)據(jù)點中的每個數(shù)據(jù) 點與先前和/或后續(xù)數(shù)據(jù)點的范圍的關(guān)系。這樣的試探的示例包括對稱性204、平坦度206 和符號208,在以下圖中進一步描述了它們的使用。
[0038] 然后,如由試探模塊202計算的這些試探可以被用來生成混合因子,該混合因子 可以指定將在曲線的擬合中運用曲線擬合技術(shù)126中的哪些曲線擬合技術(shù)、可以指定將向 曲線擬合技術(shù)126中的每個曲線擬合技術(shù)給予的權(quán)值等。這樣的曲線擬合技術(shù)126的示例 包括二次貝塞爾曲線210、三次貝塞爾曲線212、圓形曲線估計214等,也可以在以下示例中 發(fā)現(xiàn)它們的進一步討論。
[0039] 圖3描繪了用以由混合模塊128生成混合因子的對稱性204試探的使用示例,該 對稱性204試探指定使用曲線擬合技術(shù)126中的不同曲線擬合技術(shù)。示出了擬合到數(shù)據(jù)點 310、312、314、316的曲線306、308的第一示例302和第二示例304。在第一示例302中,使 用圖2的二次貝塞爾曲線210來將曲線306擬合到數(shù)據(jù)點310、312、314、316。在相應(yīng)數(shù)據(jù) 點310、312、314、316處圖示了具有控制的切線,這些控制指定用于在相鄰曲線之間的曲率 一致的縮放因子。
[0040] 在曲線306的內(nèi)部內(nèi)繪制的圓形圖示在相應(yīng)數(shù)據(jù)點310-316的曲率半徑。因此, 如圓形所示,在第一示例302中在數(shù)