課堂筆記_ B樣條曲線和NUBRS
為什麼學習B樣條
Bezier曲線/曲面不支援區域性的修改和編輯;
Bezier曲線/曲面拼接時,滿足幾何連續條件是十分困難的。
B樣條的歷史
1946年,Schoenberg提出了一種基於樣條的方法來近似曲線;
B樣條的動機源於插值中的Runge-Kutta現象:高階多項式很容易產生不穩定的上下抖動。
為什麼不用分段低階多項式通過連續的連線來代替高階多項式呢?這就是樣條(分段低階多項式)的思想。
1972年,基於Schoenberg的工作,Gordon和Riesenfeld提出了B樣條以及一系列對應的幾何演算法。
如何求解B樣條
樣條函式的插值,可以通過求解一個三對角方程來進行。
對於一個給定的區間劃分,可以類似的計算樣條曲線的插值。
給定區間上的所有樣條函式組成一個線性空間。這個線性空間的基函式就叫做B樣條基函式。
B樣條基函式
1.B樣條基函式
-小部分非0,大部分為0,保證了B樣條的區域性性。
2.一共需要多少個節點?
-共(
3.B樣條插值出的曲線的定義區間是什麼?
上圖中
B樣條分類
一般的曲線可以根據起始點和終止點是否重疊來進行分類:
- 不重合:開曲線
- 重合:閉曲線
根據節點向量中節點的分佈,B樣條可以分為如下四類:
(1)均勻B樣條
節點成等差數列均勻分佈排布,例如:0,1,2,3,4,5,5,7
0,1,2,3定義一段,1,2,3,4定義另一段。兩端之間有三個點之間重合,就可以兩次連續。
最大特定:給定控制網格,就可以畫出(估計出)曲線。
(2)準均勻B樣條:將起點和終點的都有k的重複度, 曲線就會經過端點。(對比均勻B樣條,起點應在1,3兩點的中點與2連線,取連線的三分之一處。)
(3)分段Bezier曲線:起始節點和終止節點都具有k的重複度,所有其他節點都具有k-1的重複度。
以上所有的分段都為Bezier曲線,對於分段Bezier曲線,不同的曲線段相互獨立,移動控制點只會影響其所在的Bezier曲線段,而其他的Bezier曲線段都不會改變,甚至所有關於Bezier曲線的演算法可以同樣地適用於分段Bezier曲線。
但是分段Bezier曲線需要使用更多的引數和變數來進行控制:更多的控制點和更多的節點。
(4) 非均勻B樣條
節點向量
起始節點和終止節點的重複度均小於等於k;
其他節點的重複度小於等於k-1。
性質1:區域性支援性:
區間
修改控制點
性質2:連續性:
P(t)在每一個重複度為r的節點上具有
解釋:假如k階曲線,且節點向量不重複,由於k階曲線是k-1階連續。樣條的概念是要比多項式低一次的幾何連續性,所以k階曲線在節點向量不重複的情況下,是k-1-1次連續。例如4階曲線是(4-1-1=2)的連續。
性質3:凸包性:
一個B樣條曲線被包圍在其控制頂點的凸包內部。
性質4:變差縮減性(Variation Diminishing Property):
任何一條直線與B樣條曲線的交點樹木不會超過該直線與B樣曲線的控制多邊形的交點數目。
性質5:仿射不變形:
對曲線的變化可以通過對頂點的控制來選擇。
性質6:直線保持性:
如果控制多邊形退化成為一條直線,那麼B樣條曲線依然在這條直線上。
性質7:靈活性:
使用B樣條曲線可以方便地構建如線段,尖點,切線等特殊效果。
以4階B樣條為例,如果需要包含一條線段,只需要指定控制頂點
為什麼學習B樣條
Bezier曲線/曲面不支援區域性的修改和編輯;
Bezier曲線/曲面拼接時,滿足幾何連續條件是十分困難的。
B樣條的歷史
1946年,Schoenberg提出了一種基於樣條的方法來近似曲線;
B樣條的動機源於插值中的Ru
樣條(spline)二字,從英文翻譯過來的,讓人費解。B樣條的數學定義更是讓人匪夷所思。看了好幾本參考教材,還是把總結一下B樣條這個概念。
一、解釋什麼是樣條。
實際應用中,樣條是一根富有彈性的細木條或塑料條。在應用CAD/CAM技術以前,航空、船舶和汽車製造業普遍採用手 其中 Ni,p(u)是 p次B-樣條基函式。 B-樣條曲線形式與貝塞爾曲線相似 。不像貝塞爾曲線, B-樣條曲線包含更多資訊,即:一系列的 n+1 個控制點, m+1個節點的節點向量,次數 p。 注意n, m 和 p必須滿足m = n + p + 1。更準確地,如果我們想要定義一個有 n + 1控制點的p次
轉自:http://www.cnblogs.com/icmzn/p/5100789.html
給定 n + 1個控制點P0, P1, ...,
Pn 和一個節點向量U = { u0,
u1, ..., um },
p 次B-樣條曲線由這些控制點和節點向量U 定義
關鍵字:NURBS,基函式,控制點,節點,
看了網上很多相關資料才得以下筆,資料太多,這裡就不一一列舉了,感謝各位大佬的資料
本部落格順序不太好,看前面的東西可能需要提前看後面的東西。正在努力修煉,敬請諒解
寫了個B樣條曲線計算的完成程式,包括繪圖,https://
轉自:http://www.cnblogs.com/icmzn/p/5101424.html
B-樣條曲線:移動控制點
移動控制點是改變B-樣條曲線形狀的最明顯的方法。在前面頁討論的區域性修改方案說明了修改控制點
Pi 的位置僅影響在區間[ui,
ui+p+1) ember direction onexit cti target get 說明 spa glbegin
http://blog.csdn.net/yangtrees/article/details/9026411
繪制B樣條曲線:
#include <stdli 前言
在上篇文章中,介紹瞭如何載入繪製模型以及滑鼠互動的實現,並且遺留了個問題,就是沒有模型表面沒有紋理,看起來很醜。這篇文章將介紹如何貼紋理,以及曲線的繪製。
紋理貼圖
紋理載入
既然是貼圖,那首先我們得要有合適的紋理圖片,openGL中支援的圖片為bmp格式。在這裡我還用到了個額外的庫glaux,但當時在 Bezier曲線、B樣條和NURBS,NURBS是Non-Uniform Rational B-Splines的縮寫,都是根據控制點來生成曲線的,那麼他們有什麼區別了?簡單來說,就是:
Bezier曲線中的每個控制點都會影響整個曲線的形狀,而B樣條中的控制點只會影響整個曲線的一部分,顯然B樣條提供了
在這一章節,我們以其中一段曲線段為例,改變其對應的控制點,看看曲線段形狀的改變,同時也看看對應的迴旋體圖形的改變。
控制點座標如下圖:
“問題六十”中的“基本曲線”的控制點對應如上ABCDEF六個點(其中A點在1位置)。對應輸出的迴旋體圖形如下(再次貼出來):
說 B-Spline Basis Functions
摘要Abstract:直接根據B樣條的Cox-deBoor遞推定義寫出計算B樣條基函式的程式,並將計算結果在OpenSceneGraph中顯示。
關鍵字Key Words:B Spline Basis Functions、OpenScene
在上篇文章中,我們已經概述了PR曲線。現在做個簡單的迴歸
1、什麼是PR曲線?
PR曲線是精準率(Precision)和召回率(Recall)的縮寫,
精準率表示在預測的關注事件中,其中預測正確的有多少。 Precision = TP / (TP + FP)
本文由timewolf完成,首發於CSDN,作者保留版權。未經許可,不得使用於任何商業用途。如需聯絡請發郵件:karla9(AT)eyou(dot)com
下面會給出一個簡單的例子: 在視窗上用滑鼠點8個點,然後就會將這8個點的座標畫出來~~~, 我共總用了3
說明:Spline類就是Cardinal樣條曲線了,這個類裡面記錄了4個控制點:m_startControlPoint, m_startPoint, m_endPoint, m_endControlPoint, 分別按順序對應Pk-1, Pk, Pk+1, Pk+2, 由於C
三次插值樣條曲線在靈活性和計算速度之間進行了合理的折中。與更高次樣條相比,三次插值樣條只需較少的計算和儲存,且較穩定。與二次插值樣條相比,三次插值樣條在模擬任意形狀時顯得更靈活。
三次插值樣條曲線由
這一題是得到資料點(0,3),(1,5),(2,4),(3,1)並得到它的三次樣條表示式和畫出三次樣條後的圖圖形。
以及對資料點(-1,3),(0,5),(3,1),(4,1),(5,1)並得到它的三次樣條表示式和畫出三次樣條後的圖圖形。
用函 notes 解決 你在 出現問題 出現 可用 為我 date country 附錄B 樣例表
本附錄簡要描述本書中所用的表及它們的用途。
編寫SQL語句需要對基礎數據庫的設計有良好的理解。不知道什麽信息存儲在什麽表中,表之間如何關聯以及行內數據如何分解,是不可能編寫出高效的
分段三次Hermite插值是一種光滑的分段插值。
分段三次Hermite插值函式要滿足的條件:
1. 已知節點(x_i,y_i) 及微商值 k_i (i = 0 , 1, 2, ....... n);
2. 在每個小區間[x_i , x_i_1] 上是不高於三次的多項式
Turner Whitted於1980年首次提出一個包含光反射和折射效果的模型:Whitted模型,並第一次給出光線跟蹤演算法的示例,是計算機圖形學歷史上的里程碑。發表於Communications of the ACM 1980。
定義:
特徵
新建基於MFC的空檔案,新增.cpp檔案,新增.h檔案.相應的檔案內容為;
hello.h檔案
#ifndef __HELLO_H
#define __HELLO_H
//#include &l 相關推薦
課堂筆記_ B樣條曲線和NUBRS
計算機圖形學--------充分理解B樣條曲線
B-樣條曲線:定義
B-spline Curves 學習之B樣條曲線定義(4)
B樣條曲線(B-spline Curves)
B-spline Curves 學習之B樣條曲線的移動控制點、修改節點分析(7)
OpenGL 繪制B樣條曲線
從零開始的openGL——四、紋理貼圖與n次B樣條曲線
[摘抄] Bezier曲線、B樣條和NURBS
問題六十一:三次b樣條(b-spline)曲線的控制點和曲線形狀的對應——以迴旋體的“基本曲線”為例
B樣條基函式——B-Spline Basis Functions
Bobo老師機器學習筆記第九課-PR曲線和ROC曲線
採用Cardinal法構造插枝分段三次樣條曲線 : 實戰篇
採用Cardinal法構造插枝分段三次樣條曲線 : 程式碼篇
(27)三次插值樣條曲線
Matlab之三次樣條畫圖和表示式
《MySQL必知必會》學習筆記——附錄B 樣例表
分段三次Hermite樣條曲線的應用(Unity 動畫曲線AnimationCurve的實現方法的還原)
課堂筆記_ 光線跟蹤原理
使用MFC進行程式設計,繪製直線橢圓以及樣條曲線