<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=B%E7%9C%8B%E6%A2%9D</id>
	<title>B看條 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=B%E7%9C%8B%E6%A2%9D"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=B%E7%9C%8B%E6%A2%9D&amp;action=history"/>
	<updated>2026-05-19T16:30:31Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=B%E7%9C%8B%E6%A2%9D&amp;diff=485620&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=B%E7%9C%8B%E6%A2%9D&amp;diff=485620&amp;oldid=prev"/>
		<updated>2025-08-23T15:44:46Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;佇數學的子學科數值分析內底，&amp;#039;&amp;#039;&amp;#039;B-看條&amp;#039;&amp;#039;&amp;#039;是按呢條曲線一種特殊的表示形式。伊是 B-樣條基曲線的線性組合。B-平條是貝茲曲線的一種一般化，會當進一步來推廣做非均勻有理 B 看條（NURBS）， 予阮會當予閣較濟一般的幾何體建造精確的模型。&lt;br /&gt;
&lt;br /&gt;
De Boor 算法是一个數值上穩定的計算 B 平條的方法。&lt;br /&gt;
&lt;br /&gt;
術語 _ B 看條 _ 是 Isaac Jacob Schoenberg 創造的，B 嘿基（basis）條路的縮略。&lt;br /&gt;
&lt;br /&gt;
==定義==&lt;br /&gt;
&lt;br /&gt;
予定 _ m _ + 一个較節點 _ t _ i，分布佇咧 [零 , 一] 區間，滿足&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ t _ { 零 } &amp;lt; t _ { 一 } &amp;lt; \ ldots &amp;lt; t _ { m } $&lt;br /&gt;
&lt;br /&gt;
一个 _ n _ 次&amp;#039;&amp;#039;&amp;#039;B 看條&amp;#039;&amp;#039;&amp;#039;是一个參數曲線：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ mathbf { S } : [零 , 一] \ to \ mathbb { R } ^ { 二 } $&lt;br /&gt;
&lt;br /&gt;
伊由 _ n _ 次&amp;#039;&amp;#039;&amp;#039;B 看條基 ( basis B-spline )&amp;#039;&amp;#039;&amp;#039;組成&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ mathbf { S } ( t )=\ sum _ { i=零 } ^ { m } \ mathbf { P } _ { i } b _ { i , n } ( t ) { \ mbox { , } } t \ in [零 , 一] $ .&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;i 這號做&amp;#039;&amp;#039;&amp;#039;控制點&amp;#039;&amp;#039;&amp;#039;抑是&amp;#039;&amp;#039;&amp;#039;de Boor 點&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
_ m _ + 一个 _ n _ 次 B 平條基會當用&amp;#039;&amp;#039;&amp;#039;Cox-de Boor 遞歸公式&amp;#039;&amp;#039;&amp;#039;定義&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ b _ { j , 零 } ( t ) :=\ left \ { { \ begin { matrix } 一 &amp;amp; \ mathrm { } \ quad t _ { j } &amp;lt; t &amp;lt; t _ { j + 一 } \ \ 零 &amp;amp; \ mathrm { . . . } \ end { matrix } } \ right . $&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ b _ { j , n } ( t ) :={ \ frac { t-t _ { j } } { t _ { j + n }-t _ { j } } } b _ { j , n 影一 } ( t ) + { \ frac { t _ { j + n + 一 }-t } { t _ { j + n + 一 }-t _ { j + 一 } } } b _ { j + 一 , n 影一 } ( t ) . $&lt;br /&gt;
&lt;br /&gt;
當節點等距離，稱 B 看仿的&amp;#039;&amp;#039;&amp;#039;齊勻&amp;#039;&amp;#039;&amp;#039;( uniform ) 抑無來做&amp;#039;&amp;#039;&amp;#039;非均勻&amp;#039;&amp;#039;&amp;#039;( non-uniform )。&lt;br /&gt;
&lt;br /&gt;
===齊勻 B 形條曲線===&lt;br /&gt;
&lt;br /&gt;
當 B 條是齊勻的時陣，對於予定的 _ n _，彼每一个 B 條基是其他基的平移複製作爾。一个會當做替代的非遞歸定義是&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ b _ { j , n } ( t ) :=b _ { n } ( t + n-j ) \ qquad { \ mbox { , } } j=影一 , \ ldots m + 一 $&lt;br /&gt;
&lt;br /&gt;
滿足&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ b _ { n } ( t ) :=( m + 一 ) \ sum _ { i=零 } ^ { m + 一 } \ omega _ { i } ( t _ { i }-t ) _ { + } ^ { m } \ qquad { \ mbox { , } } t \ in [零 , 一] $&lt;br /&gt;
&lt;br /&gt;
滿足&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ \ omega _ { i } :=\ prod _ { j=零 , i \ neq j } ^ { m + 一 } { \ frac { 一 } { t _ { i }-t _ { k } } } $&lt;br /&gt;
&lt;br /&gt;
其中&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ ( t _ { i }-t ) _ { + } $&lt;br /&gt;
&lt;br /&gt;
是斷冪函數（truncated power function）&lt;br /&gt;
&lt;br /&gt;
==註解==&lt;br /&gt;
&lt;br /&gt;
當節點數佮濟項式次數相等的時陣，B 樣條退化為彼个貝茲曲線。即函數的形狀由節點的位來決定。縮放抑是平移節點向量袂改變基函數。&lt;br /&gt;
&lt;br /&gt;
逐條包含佇咧伊的控制點的噗仔內底&lt;br /&gt;
&lt;br /&gt;
_ n _ 次 B 平條的一个基&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ b _ { i , n } ( t ) $&lt;br /&gt;
&lt;br /&gt;
只做在區間 [_ t _ i , _ t _ i + n + 一] 上非零。就是講&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ b _ { i , n } ( t )=\ left \ { { \ begin { matrix } &amp;gt; 零 &amp;amp; \ mathrm { } \ quad t _ { i } \ leq t &amp;lt; t _ { i + n + 一 } \ \ 零 &amp;amp; \ mathrm { . . . } \ end { matrix } } \ right . $&lt;br /&gt;
&lt;br /&gt;
嘛會使講，咱若操作咱一个控制點，阮干焦改變曲線佇局部的行為，毋是像 Bezier 曲線彼是全局行為。&lt;br /&gt;
&lt;br /&gt;
==例==&lt;br /&gt;
&lt;br /&gt;
===常數 B 看條===&lt;br /&gt;
&lt;br /&gt;
常數 B 條條是上簡單的款條。只定義佇一个節點距離上，而且毋是節點的函數。伊只是無仝節點段（knot span）的指示函數。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ b _ { j , 零 } ( t )=一 _ { [ t _ { j } , t _ { j + 一 } ) }=\ left \ { { \ begin { matrix } 一 &amp;amp; \ mathrm { } \ quad t _ { j } \ leq t &amp;lt; t _ { j + 一 } \ \ 零 &amp;amp; \ mathrm { . . . } \ end { matrix } } \ right . $&lt;br /&gt;
&lt;br /&gt;
===線性 B 看條===&lt;br /&gt;
&lt;br /&gt;
線性 B 形條定義佇兩个相鄰的節點段頂懸，佇咧節點連紲但是袂使微。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ b _ { j , 一 } ( t )=\ left \ { { \ begin { matrix } { \ frac { t-t _ { j } } { t _ { j + 一 }-t _ { j } } } &amp;amp; \ mathrm { if } \ quad t _ { j } \ leq t &amp;lt; t _ { j + 一 } \ \ { \ frac { t _ { j + 二 }-t } { t _ { j + 二 }-t _ { j + 一 } } } &amp;amp; \ mathrm { } \ quad t _ { j + 一 } \ leq t &amp;lt; t _ { j + 二 } \ \ 零 &amp;amp; \ mathrm { . . . } \ end { matrix } } \ right . $&lt;br /&gt;
&lt;br /&gt;
===三改 B 看條===&lt;br /&gt;
&lt;br /&gt;
一个片斷去的 B 形條的表達式會當寫作：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ S _ { i } ( t )=\ sum _ { k=零 } ^ { 三 } \ mathbf { P } _ { i ma三 + k } b _ { i ma三 + k , 三 } ( t ) \ qquad { \ mbox { , } } t \ in [零 , 一] $&lt;br /&gt;
&lt;br /&gt;
其中&amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;i 是第 _ i _ 個 B 平條片斷去 P 是一个控制點集，_ i _ 和 _ k _ 是局部控制點索引。控制點的集合會是 $ P _ { i } ^ { w }=( w _ { i } x _ { i } , w _ { i } y _ { i } , w _ { i } z _ { i } , w _ { i } ) $ 的集合，其中 $ w _ { i } $ 是比重，當伊增加時曲線會去予人搝向控制點 $ P _ { i } $，咧減點鐘是共曲線遠離該點。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
片段的規个集合 _ m _ 抹二條曲線（$ S _ { 三 } , S _ { 四 } , . . . , S _ { m } $）由 _ m _ + 一个控制點（$ P _ { 零 } , P _ { 一 } , . . . , P _ { m } , m \ geq 三 $）定義，做為 _ t _ 上的一个 B 逐項攏會當定義為&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ S ( t )=\ sum _ { i=零 } ^ { m } \ mathbf { P } _ { i } b _ { i , } ( t ) $&lt;br /&gt;
&lt;br /&gt;
其中 _ i _ 是控制點數，_ t _ 是取節點值的全局參數。這个表達式共 B 條表示為 B 樣條基函數的線性組合，這嘛是這个名的原因。&lt;br /&gt;
&lt;br /&gt;
有兩類 B 看條-齊勻佮非齊勻。非均勻 B 款條相鄰控制點間的距離無一定愛相等。一个一般的形式是區間綴著插入去控制點沓沓仔變小到零。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==B 條條的程式指令==&lt;br /&gt;
&lt;br /&gt;
===Matlab===&lt;br /&gt;
&lt;br /&gt;
In&amp;#039;&amp;#039;&amp;#039;Matlab&amp;#039;&amp;#039;&amp;#039;，the command「spline」can be used for spline interpolation .&lt;br /&gt;
&lt;br /&gt;
( Note：In the command ,&amp;#039;&amp;#039;&amp;#039;the cubic B-spline&amp;#039;&amp;#039;&amp;#039;is used )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cubic B-Spline Interpolation by Matlab&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Generating a sine-like spline curve and samples it over a finer mesh :&lt;br /&gt;
&lt;br /&gt;
x=零 : 一 : 十 ;   % original sampling points&lt;br /&gt;
&lt;br /&gt;
y=sin ( x ) ;&lt;br /&gt;
&lt;br /&gt;
xx=零 : 空七一 : 十 ;   % new sampling points&lt;br /&gt;
&lt;br /&gt;
yy=spline ( x , y , xx ) ;&lt;br /&gt;
&lt;br /&gt;
plot ( x , y ,&amp;#039;o&amp;#039;, xx , yy )&lt;br /&gt;
&lt;br /&gt;
===Python===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;事前安裝模組&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* pip install numpy&lt;br /&gt;
* pip install scipy&lt;br /&gt;
* pip install matplotlib&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cubic B-Spline Interpolation by Python&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
from scipy . interpolate import interp 一 d&lt;br /&gt;
&lt;br /&gt;
import matplotlib . pyplot as plt&lt;br /&gt;
&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
x=np . arange ( 零 , 十一 ) # original sample points , [零 , 一 , 二 ,…, 九 , 十]&lt;br /&gt;
&lt;br /&gt;
y=np . sin ( x )&lt;br /&gt;
&lt;br /&gt;
f=interp 一 d ( x , y , kind=&amp;#039;cubic&amp;#039;) ) # Cubic means the cubic B-spline .&lt;br /&gt;
&lt;br /&gt;
x \ _ new=np . arange ( 零 , 十曉一 , 空七一 ) # new sample points , [零 , 空七一 , 空二二 ,…. . , 九九陽九 , 十]&lt;br /&gt;
&lt;br /&gt;
y \ _ new=f ( x \ _ new )&lt;br /&gt;
&lt;br /&gt;
plt . plot ( x , y ,&amp;#039;o&amp;#039;, x \ _ new , y \ _ new )&lt;br /&gt;
&lt;br /&gt;
plt . show ( )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==B 平條曲面==&lt;br /&gt;
&lt;br /&gt;
==B 逐个曲線佮曲面相關的算法==&lt;br /&gt;
&lt;br /&gt;
關於著這个所在牽連的算法，佇咧作中有針對 Bézier、B 看條（B-spline）猶閣有真齊勻有理 B 看條（Nurbs）的相關算法的詳細數學表達佮程序實現方法。&lt;br /&gt;
&lt;br /&gt;
===求導===&lt;br /&gt;
&lt;br /&gt;
佇幾何處理中，對參數曲線佮曲面的求導是上基本的運算之一，因為參數表達的特性，佇予定點的切線佮法線會當通過求導直接得著。&lt;br /&gt;
先來考察曲線的情形：採用本頁定義中的 B 逐條曲線表達式 $ \ mathbf { S } ( t )=\ sum _ { i=零 } ^ { m } \ mathbf { P } _ { i } b _ { i , n } ( t ) { \ mbox { , } } t \ in [零 , 一] $ 嘿參數 $ t $ 進行求導：$ { \ frac { d \ mathbf { S } } { dt } }=\ sum _ { i=零 } ^ { m } b&amp;#039;_ { i , n } ( t ) \ mathbf { P } _ { i } $&lt;br /&gt;
&lt;br /&gt;
===節點插入去刪除===&lt;br /&gt;
&lt;br /&gt;
===曲線佮曲面擬合===&lt;br /&gt;
&lt;br /&gt;
==應用==&lt;br /&gt;
&lt;br /&gt;
==參看==&lt;br /&gt;
&lt;br /&gt;
* 看條&lt;br /&gt;
* De Boor 算法&lt;br /&gt;
* 有理呢 B 看條&lt;br /&gt;
&lt;br /&gt;
==參考==&lt;br /&gt;
&lt;br /&gt;
本條目部份抑是全部內容出自以 GFDL 授權發佈的《自由線上電腦詞典》（FOLDOC）。&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* Interactive java applets for B-splines&lt;br /&gt;
* Introduction to Computing with Geometry Notes ( Dr . C .-K . Shene / Michigan Technological University )&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>