曲率計算公式
設參數曲線C(u):
C ( u ) = ( x ( u ) , y ( y ) , z ( u ) )
C(u) = (x(u),y(y),z(u))
C ( u ) = ( x ( u ) , y ( y ) , z ( u ) )
曲線曲率表達爲:
k ( u ) = ∣ C ′ ( u ) × C ′ ′ ( u ) ∣ ∣ C ′ ( u ) ∣ 3 ( 1 )
k(u)=\frac{|C^{'}(u)\times C^{''}(u)|}{|C^{'}(u)|^3}\quad (1)
k ( u ) = ∣ C ′ ( u ) ∣ 3 ∣ C ′ ( u ) × C ′ ′ ( u ) ∣ ( 1 )
其中:
C ′ ( u ) 爲 一 階 導 數 C ′ ′ ( u ) 爲 二 階 導 數 C ′ ( u ) × C ′ ′ ( u ) 爲 一 階 導 數 和 二 階 導 數 的 叉 乘
\begin{aligned}
&C^{'}(u) 爲一階導數 \\
&C^{''}(u) 爲二階導數 \\
&C^{'}(u)\times C^{''}(u) 爲一階導數和二階導數的叉乘 \\
\end{aligned}
C ′ ( u ) 爲 一 階 導 數 C ′ ′ ( u ) 爲 二 階 導 數 C ′ ( u ) × C ′ ′ ( u ) 爲 一 階 導 數 和 二 階 導 數 的 叉 乘
叉乘公式
設置兩個向量:
一 階 導 數 : a = ( x 1 , y 1 , z 1 ) 二 階 導 數 : b = ( x 2 , y 2 , z 2 ) a × b = ∣ i j k x 1 y 1 z 1 x 2 y 2 z 2 ∣ = ( x 3 , y 3 , z 3 ) = ( 2 ) = ( y 1 z 2 − y 2 z 1 ) i − ( x 1 z 2 − x 2 z 1 ) j + ( x 1 y 2 − x 2 y 1 ) k ! [ 在 這 裏 插 入 圖 片 描 述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 20200629105532329. P N G ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c H M 6 L y 9 i b G 9 n L m N z Z G 4 u b m V 0 L 2 h h b m 1 p b m d q d W 52 N Q = = , s i z e 1 6 , c o l o r F F F F F F , t 7 0 )
\begin{aligned}
一階導數:&\mathbf{a}=(x_1,y_1,z_1)\\
二階導數:&\mathbf{b}=(x_2,y_2,z_2)\\
&\mathbf{a}\times \mathbf{b}=\left|
\begin{matrix}
i & j & k\\
x_1 & y_1 & z_1\\
x_2 & y_2 & z_2\\
\end{matrix}
\right|=(x_3,y_3,z_3)=\quad \quad \quad (2)\\
&\quad \quad \quad= (y_1z_2-y_2z_1)i-(x_1z_2-x_2z_1)j+(x_1y_2-x_2y_1)k![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200629105532329.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhbm1pbmdqdW52NQ==,size_16,color_FFFFFF,t_70)
\end{aligned}
一 階 導 數 : 二 階 導 數 : a = ( x 1 , y 1 , z 1 ) b = ( x 2 , y 2 , z 2 ) a × b = ∣ ∣ ∣ ∣ ∣ ∣ i x 1 x 2 j y 1 y 2 k z 1 z 2 ∣ ∣ ∣ ∣ ∣ ∣ = ( x 3 , y 3 , z 3 ) = ( 2 ) = ( y 1 z 2 − y 2 z 1 ) i − ( x 1 z 2 − x 2 z 1 ) j + ( x 1 y 2 − x 2 y 1 ) k ! [ 在 這 裏 插 入 圖 片 描 述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 2 0 2 0 0 6 2 9 1 0 5 5 3 2 3 2 9 . P N G ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c H M 6 L y 9 i b G 9 n L m N z Z G 4 u b m V 0 L 2 h h b m 1 p b m d q d W 5 2 N Q = = , s i z e 1 6 , c o l o r F F F F F F , t 7 0 )
3-D曲線曲率計算
計算三次樣條曲線曲率:
C ′ ( u ) = ( x 1 , y 1 , z 1 ) C ′ ′ ( u ) = ( x 2 , y 2 , z 2 ) ∣ C ′ ( u ) ∣ = x 1 2 + y 1 2 + z 1 2 由 公 式 ( 2 ) 得 : ∣ C ′ ( u ) × C ′ ′ ( u ) ∣ = x 3 2 + y 3 2 + z 3 2
\begin{aligned}
&C^{'}(u)=(x_1,y_1,z_1)\\
&C^{''}(u)=(x_2,y_2,z_2)\\
&|C^{'}(u)|=\sqrt{x^2_1+y^2_1+z^2_1}\\
\\
&由公式(2)得:\\
&|C^{'}(u)\times C^{''}(u)|=\sqrt{x^2_3+y^2_3+z^2_3}\\
\end{aligned}
C ′ ( u ) = ( x 1 , y 1 , z 1 ) C ′ ′ ( u ) = ( x 2 , y 2 , z 2 ) ∣ C ′ ( u ) ∣ = x 1 2 + y 1 2 + z 1 2 由 公 式 ( 2 ) 得 : ∣ C ′ ( u ) × C ′ ′ ( u ) ∣ = x 3 2 + y 3 2 + z 3 2
2-D曲線曲率計算
2-D曲線的曲率計算時,依然可以使用前文使用的公式,此時,設置z座標值爲0即可:
a = ( x 1 , y 1 , 0 ) b = ( x 2 , y 2 , 0 ) a × b = ∣ i j k x 1 y 1 0 x 2 y 2 0 ∣ = ( x 3 , y 3 , z 3 ) = ( 3 ) = 0 i − 0 j + ( x 1 y 2 − x 2 y 1 ) k 則 : ∣ C ′ ( u ) × C ′ ′ ( u ) ∣ = ( x 1 y 2 − x 2 y 1 ) 2 ( 4 )
\begin{aligned}
&\mathbf{a}=(x_1,y_1,0)\\
&\mathbf{b}=(x_2,y_2,0)\\
&\mathbf{a}\times \mathbf{b}=\left|
\begin{matrix}
i & j & k\\
x_1 & y_1 & 0\\
x_2 & y_2 & 0\\
\end{matrix}
\right|=(x_3,y_3,z_3)=\quad \quad \quad (3)\\
\\
&\quad \quad \quad= 0i-0j+(x_1y_2-x_2y_1)k\\
則:\\
&|C^{'}(u)\times C^{''}(u)|=\sqrt{(x_1y_2-x_2y_1)^2}\quad \quad (4)\\
\end{aligned}
則 : a = ( x 1 , y 1 , 0 ) b = ( x 2 , y 2 , 0 ) a × b = ∣ ∣ ∣ ∣ ∣ ∣ i x 1 x 2 j y 1 y 2 k 0 0 ∣ ∣ ∣ ∣ ∣ ∣ = ( x 3 , y 3 , z 3 ) = ( 3 ) = 0 i − 0 j + ( x 1 y 2 − x 2 y 1 ) k ∣ C ′ ( u ) × C ′ ′ ( u ) ∣ = ( x 1 y 2 − x 2 y 1 ) 2 ( 4 )
現在考慮參數方程:
C ( u ) = { x ( u ) , y ( u )
C(u)=
\begin{cases}
x(u),\\
y(u)
\end{cases}
C ( u ) = { x ( u ) , y ( u )
由高等數學知識得到:
K = ∣ x ′ ( u ) y ′ ′ ( u ) − x ′ ′ ( u ) y ′ ( u ) ∣ ∣ x ′ 2 ( u ) + y ′ 2 ( u ) ∣ 3 2 變 量 帶 入 分 子 即 爲 : ( x 1 y 2 − x 2 y 1 ) 2 , 與 公 式 ( 3 ) ( 4 ) 得 到 的 結 果 一 致 .
K=\frac{|x^{'}(u)y^{''}(u)-x^{''}(u)y^{'}(u)|}{|x^{'2}(u)+y^{'2}(u)|^{\frac{3}{2}}}\\ \\ \\
\\
變量帶入分子即爲:\sqrt{(x_1y_2-x_2y_1)^2},與公式(3)(4)得到的結果一致.\\
K = ∣ x ′ 2 ( u ) + y ′ 2 ( u ) ∣ 2 3 ∣ x ′ ( u ) y ′ ′ ( u ) − x ′ ′ ( u ) y ′ ( u ) ∣ 變 量 帶 入 分 子 即 爲 : ( x 1 y 2 − x 2 y 1 ) 2 , 與 公 式 ( 3 ) ( 4 ) 得 到 的 結 果 一 致 .
數學就是這麼奇妙啊!!!
方法驗證–3次B-Spline曲線
n = 12 #n+1個控制點
p = 3 #3次yB-Spline曲線
m = n+p+1 #m+1個參數節點
knots = [0,0,0,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1,1,1]
x = [1,2,3,4,5,6,7,8,9,10,11,12,13] #控制點座標
y = [1,1,1,1,1,2,1,1,1,1,1,1,1]
結果如下: