三維空間剛體運動4-4:四元數線性插值方法:Spring-1
- 1. 總述:多點旋轉插值的數學方法
- 2. 插值曲線及其連續性
- 2.1 插值曲線定義
- 2.2 插值曲線連續性的討論
- 3. 最優插值曲線
- 3.1 最優插值曲線的引出
- 3.2 最優插值曲線在 H 1 H_{1} H1?的曲率
- 4. 正切曲率 κ ( γ , t ) \kappa(\gamma, t) κ(γ,t)在 H 1 H_{1} H1?上的連續決議解
- 4.1 函式 K ( γ ) K(\gamma) K(γ)及變分法
- 4.2 求解 γ \gamma γ
- 5. 正切曲率 κ ( γ , t ) \kappa(\gamma, t) κ(γ,t)在 H 1 H_{1} H1?上的連續半決議解
序:本篇系列文章參照高翔老師《視覺SLAM十四講從理論到實踐》,講解三維空間剛體運動,博文將原第三講分為四部分來講解,其中四元數部分較多較復雜,又分為四部分,總體目錄如下:
- 旋轉矩陣和變換矩陣;
- 旋轉向量表示旋轉;
- 歐拉角表示旋轉;
- 四元數包括以下部分:
4-1. 四元數表示變換;
4-2. 四元數線性插值方法:LinEuler/LinMat/Lerp/Nlerp/Slerp;
4-3. 四元數多點插值方法:Squad;
4-4. 四元數多點二次插值方法:Spring,
1. 總述:多點旋轉插值的數學方法
之前提到的插值方法是相對較簡單的基于旋轉表示的方法,原則上,插值方法應獨立于該方法的旋轉方式,另外,對于最優插值演算法的定義應體現出旋轉空間期望的屬性,當然,最優曲線也可以在演算法上顯式的寫為旋轉運算式,
比如以下兩個旋轉間的插值:最優插值曲線等同于旋轉空間的一條直線,這條最優插值曲線在演算法上可以寫作歐拉角的表達方式,但是使用四元數形式的Slerp,Slerp的優勢是表述更簡潔(可參考之前《三維空間剛體運動4-1:四元數表示變換》第1章和第4章所述的旋轉空間和單位四元數球體的等價性),
因此,我們將基于旋轉空間討論插值問題,我們將給出最優插值曲線的基本數學要求,這是為了給出最優插值曲線演算法描述,并據此尋找符合條件的插值演算法,
2. 插值曲線及其連續性
2.1 插值曲線定義
旋轉間的插值定義在特殊正交群
S
O
(
3
)
SO(3)
SO(3)的旋轉空間中,關于特殊正交群
S
O
(
3
)
SO(3)
SO(3)請參考《三維空間剛體運動1:旋轉矩陣與變換矩陣》第2章的內容,然而,如之前所述,
S
O
(
3
)
SO(3)
SO(3)與
H
1
H_{1}
H1?是拓撲等價的,因此我們選擇在單位四元數空間中定義通用的插值方法:
定義:對于給定的
k
k
k個控制點
q
i
∈
H
1
q_{i} \in H_{1}
qi?∈H1?,并且
I
=
[
t
1
,
.
.
.
,
t
k
]
I=[t_{1},...,t_{k}]
I=[t1?,...,tk?],插值曲線
γ
(
t
)
:
I
∝
H
1
\gamma(t):I\propto H_{1}
γ(t):I∝H1?,即對于
t
i
∈
I
t_{i}\in I
ti?∈I,有
γ
(
t
i
)
≡
q
i
\gamma(t_{i})\equiv q_{i}
γ(ti?)≡qi?,同時要求
t
1
≤
t
2
,
.
.
.
,
t
k
?
1
≤
t
k
t_{1}\leq t_{2},...,t_{k-1} \leq t_{k}
t1?≤t2?,...,tk?1?≤tk?,
2.2 插值曲線連續性的討論
通常希望插值曲線是“漂亮”的,這個較模糊的字眼通常意味著曲線在微分幾何層面是平滑的,但是,由于存在多個不同的平滑定義故需求并不明確,定義列舉如下:
使
γ
(
t
)
\gamma(t)
γ(t)是某曲線在
C
n
(
I
,
R
n
)
C^{n}(I,R^{n})
Cn(I,Rn)上的引數運算式,平滑性可被定義為下列方式:
(1)[Madsen, 1991]:如果
γ
(
t
)
∈
C
1
\gamma(t)\in C^{1}
γ(t)∈C1,并且
?
t
∈
I
:
γ
′
(
t
)
≠
0
\forall t\in I:\gamma ^{'}(t)\neq 0
?t∈I:γ′(t)?=0,那么曲線
γ
(
t
)
\gamma(t)
γ(t)是平滑的,
(2)[Schwarz, 1989]:如果
γ
(
t
)
∈
C
2
\gamma(t)\in C^{2}
γ(t)∈C2,那么曲線
γ
(
t
)
\gamma(t)
γ(t)是平滑的,
(3)[Jakobsen, 1993]:如果
γ
(
t
)
∈
C
∞
\gamma(t)\in C^{\infty}
γ(t)∈C∞,那么曲線
γ
(
t
)
\gamma(t)
γ(t)是平滑的,
以上不同定義對于“漂亮”的表述并不明朗,我們還需要進一步檢查到底需要插值曲線的哪些性質,如下圖所示:

上圖表示平面中三個控制點間的插值曲線,其中:a)非連續插值曲線;b)連續插值曲線;c)
C
1
C^{1}
C1連續插值曲線;d)
C
2
C^{2}
C2連續插值曲線,
很明顯,我們希望曲線必須是連續且可微的,不希望在動態曲線上出現洞或斷點,因此我們要求插值曲線至少必須是
C
1
C^{1}
C1,至于是否需要
C
2
C^{2}
C2甚至
C
∞
C^{\infty}
C∞還不確定,
由于控制點是對稱的(雙倍覆寫),因此也希望插值曲線是對稱的,平面上展示的曲線明確表示我們至少需要
C
2
C^{2}
C2而不是
C
1
C^{1}
C1,然而平面展示的曲線并不是采用
C
2
C^{2}
C2的充分條件,因此目前采用幾階連續并不明朗,因此,我們將這一決定推遲到下一篇Spring中,
在
γ
(
t
)
\gamma(t)
γ(t)平滑性的第一條定義中要求
γ
′
(
t
)
≠
0
\gamma^{'}(t)\neq 0
γ′(t)?=0,這意味著插值函式不能包含奇點,現在看來,這是一個合理的要求,然而,某些情況也有可能對插值曲線的速度提出合理但矛盾的要求,例如,考慮一個鐘擺的影片,控制點(它們定義鐘擺擺動的角度)將位于旋轉空間的直線上,在外部位置(即端點處),鐘擺應該沒有速度,這與插值函式中的奇點相對應,因此,我們也將這一決定推遲到下一篇Spring中,
關于平滑性的討論并沒有給我們帶來太多的啟發,上面的定義甚至無法讓我們區分LinEuler、Lerp和Slerp,這些曲線都是
C
2
C^{2}
C2(但在控制點處是
C
0
C^{0}
C0),因此,僅僅描述插值曲線應該屬于哪一類函式是不夠的,
3. 最優插值曲線
3.1 最優插值曲線的引出
對平滑性的考量對插值曲線的定義沒有給出充分的需求,我們需要一個客觀明確的指標來衡量我們的曲線在旋轉空間中的“漂亮”程度,
我們將再次在平面中尋找靈感(見下圖),如前所述,三次曲線通常用于在一系列點之間的插值,三次曲線有很多種,在上一篇4.3中描述的貝塞爾曲線就是一個例子,而最常見的一類曲線是樣條曲線,

上圖表示平面中的樣條插值:a)簡單線性插值;b)樣條插值曲線,
討論樣條曲線,我們必須像其他嚴謹的專案處理樣條曲線那樣,寫一點關于造船者的故事,傳統上,當造船者想要決定如何塑造一艘船的彎曲部分時,會使用一塊有彈性的金屬,這塊金屬被固定在一組鉚釘之間,然后,金屬部件與鉚釘相適應,形成一個優美柔和的曲線,造船者稱這個工具為樣條,關于樣條的知識也請參考上一篇4.3中描述的樣條,
從物理上看,上面對樣條的描述對應于金屬片在鉚釘約束條件下,達到最小的內部張力,從數學角度講,金屬件使曲率(curvature)最小,曲率是指一條(平面上的)曲線在特定一點彎曲的程度,它正比于曲線轉過的角度,反比于曲線的長度,關于曲率的知識請參考《什么是曲率和曲率半徑》,
在平面中,這個曲線可以描述如下:給定控制點
(
x
i
,
y
i
)
∈
R
2
(x_{i},y_{i})\in \mathbb{R}^{2}
(xi?,yi?)∈R2,定義曲線
γ
(
t
)
∈
C
2
(
I
,
R
2
)
\gamma(t)\in C^{2}(I,\mathbb{R}^{2})
γ(t)∈C2(I,R2),其中
t
t
t是自然引數(如曲線長度,0-1之間的進度比等),并且使
γ
(
t
)
\gamma(t)
γ(t)經過控制點,同時最小化運算式
∫
I
∥
γ
′
′
(
t
)
∥
2
d
t
\int _{I}\left \| \gamma ^{''}(t) \right \| ^{2}dt
∫I?∥∥∥?γ′′(t)∥∥∥?2dt,此時曲率的平方最小,
這個簡單的公式從微分幾何中的一般概念出發,給出了插值曲線的明確定義,因此,我們選擇將曲率(或曲率平方)最小的曲線視為最優插值曲線,下面我們將看到,在
H
1
H_{1}
H1?中計算這條曲線并不像在平面上那么簡單,
3.2 最優插值曲線在 H 1 H_{1} H1?的曲率
插值曲線位于四元數空間的超球面
H
1
H_{1}
H1?上,假設
t
t
t為自然引數,那么曲線
γ
(
t
)
\gamma (t)
γ(t)的曲率通常被定義為
∥
γ
′
′
(
t
)
∥
\left \| \gamma ^{''}(t) \right \|
∥∥∥?γ′′(t)∥∥∥?,
這里解釋一下,上文關于曲率的資料中,二階可導函式的曲率被定義為:
K
(
t
)
=
∥
γ
′
′
(
t
)
∥
(
1
+
γ
′
(
t
)
2
)
3
2
(3.1)
K(t)=\frac{\left \| \gamma ^{''}(t) \right \|}{(1+\gamma ^{'}(t)^{2})\frac{3}{2}}\tag{3.1}
K(t)=(1+γ′(t)2)23?∥∥∥?γ′′(t)∥∥∥??(3.1)然而在本篇論文中,曲率的分母被省略,論文并沒給出解釋,博主認為,這里的曲率
∥
γ
′
′
(
t
)
∥
\left \| \gamma ^{''}(t) \right \|
∥∥∥?γ′′(t)∥∥∥?是曲線在切平面上的投影的曲率,并非原曲線,而切平面在投影后已固定,分母可以作為常數處理,因此省略掉分母,另外一種原因,固定
γ
′
(
t
)
\gamma ^{'}(t)
γ′(t)可能有助于最小化角加速度,未定,后續補充,
插值曲線Slerp在四元數單位圓上產生大弧線(大弧線概念請參考本系列博文4-2的5.2.2節),
H
1
H_{1}
H1?上的圓弧在切平面上的投影是一條直線,因此,可以預料大弧線的投影是沒有曲率的,如果用
∥
γ
′
′
(
t
)
∥
\left \| \gamma ^{''}(t) \right \|
∥∥∥?γ′′(t)∥∥∥?來計算曲率,曲率將不是零,而是1:即單位球的曲率,因此,我們想計算相對于四元數單位球面的曲率,而不是相對于四元數空間,我們稱這個曲率為區域曲率,
曲面上曲線的區域曲率的定義是基于微分幾何的,點的區域曲率定義如下:給定表面上的點,一個坐標系統(地圖)被放置在切平面,現在曲線的區域曲率就是投影到切平面上的曲線的曲率,這也叫做正切曲率,
在微分幾何中,大弧線(直線)稱為測地線,測地線投影到切面上,就成了一條直線,因此,正如預期的那樣,我們看到大弧線沒有任何區域彎曲,下面開始分析正切曲率,

上圖表示曲線
γ
(
t
)
\gamma (t)
γ(t)的正切向量
γ
′
(
t
)
\gamma ^{'}(t)
γ′(t)和正切曲率
γ
′
′
(
t
)
\gamma ^{''}(t)
γ′′(t)在平面的分量:a)表示位于四元數單位球面上曲線的位置向量
γ
(
t
)
\gamma (t)
γ(t)(位置矢量是在某一時刻,以坐標原點為起點,以運動質點所在位置為終點的有向線段),它在正切平面上的投影為
γ
′
(
t
)
\gamma ^{'}(t)
γ′(t);b)向量
γ
′
′
(
t
)
\gamma ^{''}(t)
γ′′(t)可以分解為正切平面的分量
γ
t
′
′
(
t
)
\gamma ^{''}_{t}(t)
γt′′?(t)和平行于位置矢量的分量
γ
o
′
′
(
t
)
\gamma ^{''}_{o}(t)
γo′′?(t),
由上圖可知,如果曲線
γ
(
t
)
\gamma (t)
γ(t)位于
H
1
H_{1}
H1?的表面,我們可以將
γ
′
′
(
t
)
\gamma ^{''}(t)
γ′′(t)分解為兩個部分
γ
t
′
′
(
t
)
\gamma ^{''}_{t}(t)
γt′′?(t)、
γ
o
′
′
(
t
)
\gamma ^{''}_{o}(t)
γo′′?(t),期望的曲率部分是
γ
t
′
′
(
t
)
\gamma ^{''}_{t}(t)
γt′′?(t),因為它表示
γ
′
′
(
t
)
\gamma ^{''}(t)
γ′′(t)的彎曲程度,因此,曲線
γ
(
t
)
\gamma (t)
γ(t)的區域曲率
κ
\kappa
κ可以表示為:
κ
(
r
,
t
)
=
∥
γ
t
′
′
(
t
)
∥
=
∥
γ
′
′
(
t
)
?
γ
o
′
′
(
t
)
∥
\kappa (r,t)=\left \| \gamma ^{''}_{t}(t) \right \|=\left \| \gamma ^{''}(t)-\gamma ^{''}_{o}(t) \right \|
κ(r,t)=∥∥∥?γt′′?(t)∥∥∥?=∥∥∥?γ′′(t)?γo′′?(t)∥∥∥?
由于曲線
γ
(
t
)
\gamma (t)
γ(t)位于
H
1
H_{1}
H1?的表面,
γ
o
′
′
(
t
)
\gamma ^{''}_{o}(t)
γo′′?(t)平行于
γ
(
t
)
\gamma (t)
γ(t),因此
γ
o
′
′
(
t
)
\gamma ^{''}_{o}(t)
γo′′?(t)可以表示為
γ
′
′
(
t
)
\gamma ^{''}(t)
γ′′(t)投影到
γ
(
t
)
\gamma (t)
γ(t),參考《三維空間剛體運動2:旋轉向量與羅德里格斯公式》中的投影公式(2.6),因此:
γ
t
′
′
(
t
)
=
γ
′
′
(
t
)
?
γ
o
′
′
(
t
)
=
γ
′
′
(
t
)
?
(
γ
′
′
(
t
)
?
γ
(
t
)
∥
γ
(
t
)
∥
)
γ
(
t
)
∥
γ
(
t
)
∥
=
γ
′
′
(
t
)
?
(
γ
′
′
(
t
)
?
γ
(
t
)
)
γ
(
t
)
\begin{aligned} \gamma ^{''}_{t}(t) &= \gamma ^{''}(t)-\gamma ^{''}_{o}(t) \\&= \gamma ^{''}(t)-\left ( \gamma ^{''}(t) \cdot \frac{\gamma (t)}{\left \| \gamma (t) \right \|} \right )\frac{\gamma (t)}{\left \| \gamma (t) \right \|} \\&= \gamma ^{''}(t) - (\gamma ^{''}(t) \cdot \gamma (t))\gamma (t) \end{aligned}
γt′′?(t)?=γ′′(t)?γo′′?(t)=γ′′(t)?(γ′′(t)?∥γ(t)∥γ(t)?)∥γ(t)∥γ(t)?=γ′′(t)?(γ′′(t)?γ(t))γ(t)?由此給出區域曲率
κ
\kappa
κ的定義:給定
γ
(
t
)
∈
C
2
(
I
,
H
1
)
\gamma(t)\in C^{2}(I,H_{1})
γ(t)∈C2(I,H1?),區域曲率
κ
(
γ
,
t
)
\kappa(\gamma, t)
κ(γ,t)被定義為:
κ
(
γ
,
t
)
=
∥
γ
′
′
(
t
)
?
(
γ
′
′
(
t
)
?
γ
(
t
)
)
γ
(
t
)
∥
(3.2)
\kappa(\gamma, t)=\left \| \gamma ^{''}(t) - (\gamma ^{''}(t) \cdot \gamma (t))\gamma (t) \right \|\tag{3.2}
κ(γ,t)=∥∥∥?γ′′(t)?(γ′′(t)?γ(t))γ(t)∥∥∥?(3.2)注意,這里
t
t
t不一定是自然引數,因此,上述定義在嚴格的微分幾何意義上是不正確的,在自然引數上引數化的曲線的曲率可寫作
κ
(
r
,
t
)
=
∥
γ
′
′
(
t
)
∥
\kappa (r,t)=\left \| \gamma ^{''}(t) \right \|
κ(r,t)=∥∥∥?γ′′(t)∥∥∥?,而對于光滑曲線,微分幾何上的正確運算式為:
κ
(
γ
,
t
)
=
∥
γ
′
′
(
t
)
∥
γ
′
(
t
)
∥
2
?
γ
′
(
t
)
(
γ
′
′
(
t
)
?
γ
′
(
t
)
)
∥
γ
′
(
t
)
∥
4
∥
\kappa(\gamma, t)=\left \| \frac{\gamma ^{''}(t)}{\left \| \gamma^{'}(t) \right \|^{2}} - \frac{\gamma^{'}(t) (\gamma ^{''}(t) \cdot \gamma^{'}(t))}{\left \| \gamma^{'}(t) \right \|^{4}}\right \|
κ(γ,t)=∥∥∥∥∥?∥γ′(t)∥2γ′′(t)??∥γ′(t)∥4γ′(t)(γ′′(t)?γ′(t))?∥∥∥∥∥?然而,我們感興趣的不僅僅是插值曲線的形狀(曲率),我們還想要一個“漂亮的”角速度函式,即使角加速度最小化的函式(從物理角度來看,對應的是使能量最小化),在運算式3.2中角加速度是自動包括在內的,因為我們沒有重新引數化自然引數,因此我們使用運算式3.2來計算曲率,
下面將分別介紹正切曲率
κ
(
γ
,
t
)
\kappa(\gamma, t)
κ(γ,t)在
H
1
H_{1}
H1?上的連續決議解(第4章)、連續半決議解(第5章)和離散數字化解(篇幅原因,留至下篇),
4. 正切曲率 κ ( γ , t ) \kappa(\gamma, t) κ(γ,t)在 H 1 H_{1} H1?上的連續決議解
4.1 函式 K ( γ ) K(\gamma) K(γ)及變分法
我們將H1中的最優插值曲線定義為曲率平方和最小的曲線,但又必須通過控制點的限制,然后定義了H1中曲率的相關運算式,因此,我們得到問題的公式如下:
設控制點
q
1
,
.
.
.
,
q
N
∈
H
1
q_{1},...,q_{N}\in H_{1}
q1?,...,qN?∈H1?,求
γ
(
t
)
∈
C
2
(
I
,
H
1
)
\gamma(t)\in C^{2}(I,H_{1})
γ(t)∈C2(I,H1?),使存在
t
1
,
.
.
.
,
t
N
∈
(
I
)
t_{1},...,t_{N}\in (I)
t1?,...,tN?∈(I),滿足
γ
(
t
i
)
=
q
i
\gamma(t_{i})=q_{i}
γ(ti?)=qi?,并使下列運算式最小化:
K
(
γ
)
=
∫
t
1
t
N
∥
κ
(
γ
,
t
)
∥
2
d
t
(4.1)
K(\gamma)=\int_{t_{1}}^{t_{N}}\left \| \kappa (\gamma,t) \right \|^{2}dt\tag{4.1}
K(γ)=∫t1?tN??∥κ(γ,t)∥2dt(4.1)這里將求以
γ
\gamma
γ為變數的曲率問題
κ
(
γ
,
t
)
\kappa (\gamma,t)
κ(γ,t)轉換為對曲率平方的積分問題
K
(
γ
)
K(\gamma)
K(γ),同樣以函式
γ
\gamma
γ為變數,這里
K
(
γ
)
K(\gamma)
K(γ)求的是整條曲線各個點的曲率平方之和,當它越小時,轉彎就越平滑,所耗費的動能也就越少,符合導航線路的基本要求,
使函式的積分最小化的問題叫做變分演算問題,又稱變分法,關于變分法請參考文章《變分法入門介紹》,這里不再贅述,在這里應用變分法只要記住,求極值應用到的必要條件是一階導數為零,
下面,我們將概述變分學中解決問題的基本方法,
K
(
γ
)
K(\gamma)
K(γ)達到最小值的一個必要條件是
K
′
(
γ
)
=
0
K^{'}(\gamma)=0
K′(γ)=0,對于
δ
∈
R
\delta \in \mathbb{R}
δ∈R和
ψ
∈
C
k
(
I
,
H
1
)
\psi \in C^{k}(I,H_{1})
ψ∈Ck(I,H1?),我們看一下導數定義:
lim
?
δ
→
0
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
δ
=
0
(4.2)
\lim_{\delta\rightarrow 0}\frac{K(\gamma+\delta \psi)-K(\gamma)}{\delta}=0\tag{4.2}
δ→0lim?δK(γ+δψ)?K(γ)?=0(4.2)上式中,函式
δ
ψ
\delta \psi
δψ稱為
γ
\gamma
γ的變數函式,函式
γ
+
δ
ψ
\gamma+\delta \psi
γ+δψ稱為比較函式,滿足邊界條件的函式
γ
(
t
)
∈
C
2
(
I
,
H
1
)
\gamma(t)\in C^{2}(I,H_{1})
γ(t)∈C2(I,H1?)稱為容許函式,這樣,我們就得到了關于
γ
\gamma
γ的條件函式,
4.2 求解 γ \gamma γ
現在我們將推匯出變分問題的解必須滿足的要求,因此,我們假定解
γ
\gamma
γ和比較函式
γ
+
δ
ψ
\gamma+\delta \psi
γ+δψ都是可容許的,并且
K
(
γ
)
K(\gamma)
K(γ)是最小的,
標籤:AI 上一篇:記一次.Net Core通過GDI+在CentOS 7(Docker)環境中繪圖報錯The type initializer for ‘Gdip‘ threw an exception的問題及處理方式 下一篇:資料結構——“優雅的”復雜度
比較函式
γ
+
δ
ψ
\gamma+\delta \psi
γ+δψ若要被容許,前提必須是:
ψ
(
t
1
)
=
ψ
(
t
2
)
=
.
.
.
=
ψ
(
t
N
)
=
0
(4.3)
\psi (t_{1}) = \psi (t_{2}) = ... = \psi (t_{N}) = 0\tag{4.3}
ψ(t1?)=ψ(t2?)=...=ψ(tN?)=0(4.3)此外,由于
γ
\gamma
γ和
γ
+
δ
ψ
\gamma+\delta \psi
γ+δψ在單位球面上,我們有
∥
γ
∥
=
1
\left \| \gamma \right \|=1
∥γ∥=1和
∥
γ
+
δ
ψ
∥
=
1
\left \| \gamma+\delta \psi\right \|=1
∥γ+δψ∥=1,在下面的推導中,可以忽略運算式成分中包含四元數函式這一情況,這是因為沒有使用四元數乘法(只使用標量乘積),
因此,交換性沒有問題,因此我們有:
1
=
∥
γ
+
δ
ψ
∥
2
=
∥
γ
∥
2
+
δ
2
∥
ψ
∥
+
2
δ
(
γ
?
ψ
)
=
1
+
δ
(
δ
∥
ψ
∥
+
2
γ
?
ψ
)
?
γ
?
ψ
=
?
δ
2
∥
ψ
∥
2
(4.4)
\begin{aligned} 1 &= \left \| \gamma + \delta \psi \right \|^{2} \\&= \left \| \gamma \right \|^{2} + \delta^{2}\left \| \psi \right \| + 2\delta(\gamma \cdot \psi) \\&= 1 + \delta(\delta\left \| \psi \right \| + 2\gamma \cdot \psi) \\ \Rightarrow \gamma \cdot \psi &= -\frac{\delta}{2}\left \| \psi \right \|^{2}\end{aligned}\tag{4.4}
1?γ?ψ?=∥γ+δψ∥2=∥γ∥2+δ2∥ψ∥+2δ(γ?ψ)=1+δ(δ∥ψ∥+2γ?ψ)=?2δ?∥ψ∥2?(4.4)我們想用關于"導數"的知識來檢驗
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
K(\gamma+\delta \psi)-K(\gamma)
K(γ+δψ)?K(γ):
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
=
∫
t
1
t
N
∥
κ
(
γ
+
δ
ψ
,
t
)
∥
2
?
∥
κ
(
γ
,
t
)
∥
d
t
=
∫
t
1
t
N
∥
(
γ
+
δ
ψ
)
′
′
?
(
(
γ
+
δ
ψ
)
′
′
?
(
γ
+
δ
ψ
)
)
(
γ
+
δ
ψ
)
∥
2
?
∥
γ
′
′
?
(
γ
′
′
?
γ
)
γ
∥
2
d
t
=
∫
t
1
t
N
∥
γ
′
′
+
δ
ψ
′
′
?
(
γ
′
′
?
γ
+
δ
γ
′
′
?
ψ
+
δ
γ
ψ
′
′
+
δ
2
ψ
′
′
?
ψ
)
(
γ
+
δ
ψ
)
∥
2
?
∥
γ
′
′
?
(
γ
′
′
?
γ
)
γ
∥
2
d
t
=
∫
t
1
t
N
∥
[
γ
′
′
?
(
γ
′
′
?
γ
)
γ
]
+
δ
[
ψ
′
′
?
(
γ
′
′
?
γ
)
ψ
?
(
γ
′
′
?
ψ
)
γ
?
(
ψ
′
′
?
γ
)
γ
)
]
+
δ
2
[
.
.
.
]
+
δ
3
[
.
.
.
]
∥
2
?
∥
γ
′
′
?
(
γ
′
′
?
γ
)
γ
∥
2
d
t
\begin{aligned} K(\gamma+\delta \psi)-K(\gamma) &= \int_{t_{1}}^{t_{N}}\left \| \kappa (\gamma+\delta\psi,t) \right\|^{2} - \left \| \kappa (\gamma,t) \right \|dt \\&= \int_{t_{1}}^{t_{N}}\left \| (\gamma+\delta\psi)^{''}-((\gamma+\delta\psi)^{''}\cdot(\gamma+\delta\psi))(\gamma+\delta\psi) \right \|^{2} - \left \| \gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma \right \|^{2}dt \\&= \int_{t_{1}}^{t_{N}}\left \| \gamma^{''} + \delta\psi^{''}-(\gamma^{''}\cdot\gamma+\delta\gamma^{''}\cdot\psi+\delta\gamma\psi^{''}+\delta^{2}\psi^{''}\cdot\psi)(\gamma+\delta\psi) \right \|^{2} - \left \| \gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma \right \|^{2}dt \\&= \int_{t_{1}}^{t_{N}}\left \| [\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma] + \delta[\psi^{''}-(\gamma^{''}\cdot\gamma)\psi-(\gamma^{''}\cdot\psi)\gamma-(\psi^{''}\cdot\gamma)\gamma)] + \delta^{2}[...] + \delta^{3}[...]\right \|^{2} \\ &\quad\quad- \left \| \gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma \right \|^{2}dt\end{aligned}
K(γ+δψ)?K(γ)?=∫t1?tN??∥κ(γ+δψ,t)∥2?∥κ(γ,t)∥dt=∫t1?tN??∥∥∥?(γ+δψ)′′?((γ+δψ)′′?(γ+δψ))(γ+δψ)∥∥∥?2?∥∥∥?γ′′?(γ′′?γ)γ∥∥∥?2dt=∫t1?tN??∥∥∥?γ′′+δψ′′?(γ′′?γ+δγ′′?ψ+δγψ′′+δ2ψ′′?ψ)(γ+δψ)∥∥∥?2?∥∥∥?γ′′?(γ′′?γ)γ∥∥∥?2dt=∫t1?tN??∥∥∥?[γ′′?(γ′′?γ)γ]+δ[ψ′′?(γ′′?γ)ψ?(γ′′?ψ)γ?(ψ′′?γ)γ)]+δ2[...]+δ3[...]∥∥∥?2?∥∥∥?γ′′?(γ′′?γ)γ∥∥∥?2dt?在上述運算式中,我們根據
δ
\delta
δ的指數收集了多項式,上述推導的目的是求導數,
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
K(\gamma+\delta \psi)-K(\gamma)
K(γ+δψ)?K(γ)的展開式中,被
δ
2
\delta^{2}
δ2和
δ
3
\delta^{3}
δ3乘的多項式可以被洗掉,因為在檢查極限時,除以
δ
\delta
δ后,當
δ
\delta
δ無限接近零時它們就消失了,因此,上面運算式可被寫為:
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
=
∫
t
1
t
N
∥
A
+
δ
B
∥
2
?
∥
A
∥
2
d
t
=
∫
t
1
t
N
δ
2
∥
B
∥
2
+
2
δ
A
?
B
d
t
\begin{aligned} K(\gamma+\delta \psi)-K(\gamma) &= \int_{t_{1}}^{t_{N}}\left \| A+\delta B \right \|^{2} - \left \| A \right \|^{2}dt \\&= \int_{t_{1}}^{t_{N}}\delta^{2}\left \| B \right \|^{2}+2\delta A\cdot Bdt\end{aligned}
K(γ+δψ)?K(γ)?=∫t1?tN??∥A+δB∥2?∥A∥2dt=∫t1?tN??δ2∥B∥2+2δA?Bdt?這里
A
=
γ
′
′
?
(
γ
′
′
?
γ
)
γ
,
B
=
ψ
′
′
?
(
γ
′
′
?
γ
)
ψ
?
(
γ
′
′
?
ψ
)
γ
?
(
ψ
′
′
?
γ
)
γ
)
A=\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma,B=\psi^{''}-(\gamma^{''}\cdot\gamma)\psi-(\gamma^{''}\cdot\psi)\gamma-(\psi^{''}\cdot\gamma)\gamma)
A=γ′′?(γ′′?γ)γ,B=ψ′′?(γ′′?γ)ψ?(γ′′?ψ)γ?(ψ′′?γ)γ),同樣省略被
δ
2
\delta^{2}
δ2乘的項,重寫運算式為:
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
=
∫
t
1
t
N
2
δ
[
γ
′
′
?
(
γ
′
′
?
γ
)
γ
]
[
ψ
′
′
?
(
γ
′
′
?
γ
)
ψ
?
(
γ
′
′
?
ψ
)
γ
?
(
ψ
′
′
?
γ
)
γ
)
]
d
t
=
2
δ
∫
t
1
t
N
γ
′
′
?
ψ
′
′
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
)
?
(
γ
′
′
?
ψ
)
(
γ
′
′
?
γ
)
?
(
γ
?
ψ
′
′
)
(
γ
′
′
?
γ
)
?
(
γ
′
′
?
γ
)
(
γ
?
ψ
′
′
)
+
(
γ
′
′
?
γ
)
(
γ
′
′
?
γ
)
(
γ
?
ψ
)
+
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
)
(
γ
?
γ
)
+
(
γ
′
′
?
γ
)
(
γ
?
ψ
′
′
)
(
γ
?
γ
)
d
t
\begin{aligned} K(\gamma+\delta \psi)-K(\gamma) &= \int_{t_{1}}^{t_{N}}2\delta[\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma][\psi^{''}-(\gamma^{''}\cdot\gamma)\psi-(\gamma^{''}\cdot\psi)\gamma-(\psi^{''}\cdot\gamma)\gamma)]dt \\&= 2\delta\int_{t_{1}}^{t_{N}}\gamma^{''}\cdot\psi^{''}-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi)-(\gamma^{''}\cdot\psi)(\gamma^{''}\cdot\gamma)-(\gamma\cdot\psi^{''})(\gamma^{''}\cdot\gamma)-(\gamma^{''}\cdot\gamma)(\gamma\cdot\psi^{''}) \\&\quad\quad+ (\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\gamma)(\gamma\cdot\psi)+(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi)(\gamma\cdot\gamma)+(\gamma^{''}\cdot\gamma)(\gamma\cdot\psi^{''})(\gamma\cdot\gamma)dt\end{aligned}
K(γ+δψ)?K(γ)?=∫t1?tN??2δ[γ′′?(γ′′?γ)γ][ψ′′?(γ′′?γ)ψ?(γ′′?ψ)γ?(ψ′′?γ)γ)]dt=2δ∫t1?tN??γ′′?ψ′′?(γ′′?γ)(γ′′?ψ)?(γ′′?ψ)(γ′′?γ)?(γ?ψ′′)(γ′′?γ)?(γ′′?γ)(γ?ψ′′)+(γ′′?γ)(γ′′?γ)(γ?ψ)+(γ′′?γ)(γ′′?ψ)(γ?γ)+(γ′′?γ)(γ?ψ′′)(γ?γ)dt?由于
γ
\gamma
γ在四元數單位圓
H
1
H_{1}
H1?上,因此
γ
?
γ
=
∥
γ
∥
2
=
1
\gamma\cdot\gamma=\left \| \gamma \right \|^{2}=1
γ?γ=∥γ∥2=1,同時將公式(4.4)的結論
γ
?
ψ
=
?
δ
2
∥
ψ
∥
2
\gamma \cdot \psi = -\frac{\delta}{2}\left \| \psi \right \|^{2}
γ?ψ=?2δ?∥ψ∥2代入上述運算式中,我們得到:
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
=
2
δ
∫
t
1
t
N
γ
′
′
?
ψ
′
′
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
+
γ
?
ψ
′
′
)
+
(
γ
′
′
?
γ
)
2
(
?
δ
2
∥
ψ
∥
2
)
d
t
=
2
δ
∫
t
1
t
N
γ
′
′
?
ψ
′
′
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
+
γ
?
ψ
′
′
)
d
t
\begin{aligned} K(\gamma+\delta \psi)-K(\gamma) &= 2\delta\int_{t_{1}}^{t_{N}}\gamma^{''}\cdot\psi^{''}-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi+\gamma\cdot\psi^{''})+(\gamma^{''}\cdot\gamma)^{2}( -\frac{\delta}{2}\left \| \psi \right \|^{2})dt \\&= 2\delta\int_{t_{1}}^{t_{N}}\gamma^{''}\cdot\psi^{''}-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi+\gamma\cdot\psi^{''})dt\end{aligned}
K(γ+δψ)?K(γ)?=2δ∫t1?tN??γ′′?ψ′′?(γ′′?γ)(γ′′?ψ+γ?ψ′′)+(γ′′?γ)2(?2δ?∥ψ∥2)dt=2δ∫t1?tN??γ′′?ψ′′?(γ′′?γ)(γ′′?ψ+γ?ψ′′)dt?同樣省略被
δ
2
\delta^{2}
δ2乘的項,經過多次改寫,我們將
δ
\delta
δ分離單獨作為一個因素,當除以
δ
\delta
δ時,這個因子將消失在導數的運算式中,因此,我們現在想分離出包含
ψ
\psi
ψ的項,使用分部積分和公式(4.3)的結論,運算式被重寫如下:
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
=
2
δ
∑
i
=
1
N
?
1
L
i
\begin{aligned} K(\gamma+\delta \psi)-K(\gamma) &= 2\delta \sum_{i=1}^{N-1}L_{i}\end{aligned}
K(γ+δψ)?K(γ)?=2δi=1∑N?1?Li??其中
L
i
=
∫
t
i
t
i
+
1
γ
′
′
?
ψ
′
′
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
+
γ
?
ψ
′
′
)
d
t
=
∫
t
i
t
i
+
1
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
ψ
′
′
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
)
d
t
=
[
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
ψ
′
]
t
i
t
i
+
1
?
∫
t
i
t
i
+
1
(
d
d
t
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
)
?
ψ
′
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
)
d
t
=
[
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
ψ
′
]
t
i
t
i
+
1
?
[
(
d
d
t
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
)
?
ψ
]
t
i
t
i
+
1
+
∫
t
i
t
i
+
1
(
d
2
d
t
2
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
)
?
ψ
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
)
d
t
\begin{aligned} L_{i} &= \int_{t_{i}}^{t_{i+1}}\gamma^{''}\cdot\psi^{''}-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi+\gamma\cdot\psi^{''})dt \\&= \int_{t_{i}}^{t_{i+1}}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)\cdot\psi^{''}-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi)dt \\&= [(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)\cdot\psi^{'}]_{t_{i}}^{t_{i+1}} - \int_{t_{i}}^{t_{i+1}}(\frac{d}{dt}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma))\cdot\psi^{'}-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi)dt \\&= [(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)\cdot\psi^{'}]_{t_{i}}^{t_{i+1}} - [(\frac{d}{dt}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma))\cdot\psi]_{t_{i}}^{t_{i+1}} \\& \quad\quad+\int_{t_{i}}^{t_{i+1}}(\frac{d^{2}}{dt^{2}}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma))\cdot\psi-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi)dt\end{aligned}
Li??=∫ti?ti+1??γ′′?ψ′′?(γ′′?γ)(γ′′?ψ+γ?ψ′′)dt=∫ti?ti+1??(γ′′?(γ′′?γ)γ)?ψ′′?(γ′′?γ)(γ′′?ψ)dt=[(γ′′?(γ′′?γ)γ)?ψ′]ti?ti+1???∫ti?ti+1??(dtd?(γ′′?(γ′′?γ)γ))?ψ′?(γ′′?γ)(γ′′?ψ)dt=[(γ′′?(γ′′?γ)γ)?ψ′]ti?ti+1???[(dtd?(γ′′?(γ′′?γ)γ))?ψ]ti?ti+1??+∫ti?ti+1??(dt2d2?(γ′′?(γ′′?γ)γ))?ψ?(γ′′?γ)(γ′′?ψ)dt?注意,上面的運算式要求它是四階可微的,現在我們可以使用
ψ
\psi
ψ在所有控制點上為零的公式(4.3),可以看到第二項為零,于是得到:
L
i
=
[
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
ψ
′
]
t
i
t
i
+
1
+
∫
t
i
t
i
+
1
(
d
2
d
t
2
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
)
?
ψ
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
)
d
t
\begin{aligned} L_{i} &= [(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)\cdot\psi^{'}]_{t_{i}}^{t_{i+1}} +\int_{t_{i}}^{t_{i+1}}(\frac{d^{2}}{dt^{2}}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma))\cdot\psi-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi)dt\end{aligned}
Li??=[(γ′′?(γ′′?γ)γ)?ψ′]ti?ti+1??+∫ti?ti+1??(dt2d2?(γ′′?(γ′′?γ)γ))?ψ?(γ′′?γ)(γ′′?ψ)dt?再次考慮整個運算式:
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
=
2
δ
∑
i
=
1
N
?
1
L
i
=
2
δ
∑
i
=
1
N
?
1
[
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
ψ
′
]
t
i
t
i
+
1
+
2
δ
∑
i
=
1
N
?
1
∫
t
i
t
i
+
1
(
d
2
d
t
2
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
)
?
ψ
?
(
γ
′
′
?
γ
)
(
γ
′
′
?
ψ
)
d
t
=
2
δ
[
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
ψ
′
]
t
1
t
N
+
2
δ
∑
i
=
1
N
?
1
∫
t
i
t
i
+
1
(
d
2
d
t
2
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
(
γ
′
′
?
γ
)
γ
′
′
)
?
ψ
d
t
\begin{aligned} K(\gamma+\delta \psi)-K(\gamma) &= 2\delta \sum_{i=1}^{N-1}L_{i} \\&= 2\delta\sum_{i=1}^{N-1}[(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)\cdot\psi^{'}]_{t_{i}}^{t_{i+1}} + 2\delta\sum_{i=1}^{N-1}\int_{t_{i}}^{t_{i+1}}(\frac{d^{2}}{dt^{2}}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma))\cdot\psi-(\gamma^{''}\cdot\gamma)(\gamma^{''}\cdot\psi)dt \\&= 2\delta[(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)\cdot\psi^{'}]_{t_{1}}^{t_{N}} + 2\delta\sum_{i=1}^{N-1}\int_{t_{i}}^{t_{i+1}}(\frac{d^{2}}{dt^{2}}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)-(\gamma^{''}\cdot\gamma)\gamma^{''})\cdot\psi dt \end{aligned}
K(γ+δψ)?K(γ)?=2δi=1∑N?1?Li?=2δi=1∑N?1?[(γ′′?(γ′′?γ)γ)?ψ′]ti?ti+1??+2δi=1∑N?1?∫ti?ti+1??(dt2d2?(γ′′?(γ′′?γ)γ))?ψ?(γ′′?γ)(γ′′?ψ)dt=2δ[(γ′′?(γ′′?γ)γ)?ψ′]t1?tN??+2δi=1∑N?1?∫ti?ti+1??(dt2d2?(γ′′?(γ′′?γ)γ)?(γ′′?γ)γ′′)?ψdt?利用控制點的連續性進行最后改寫,我們可以求出“導數”:
lim
?
δ
→
0
K
(
γ
+
δ
ψ
)
?
K
(
γ
)
δ
=
2
[
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
ψ
′
]
t
1
t
N
+
2
∑
i
=
1
N
?
1
∫
t
i
t
i
+
1
(
d
2
d
t
2
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
?
(
γ
′
′
?
γ
)
γ
′
′
)
?
ψ
d
t
(4.5)
\begin{aligned} \lim_{\delta\rightarrow 0}\frac{K(\gamma+\delta \psi)-K(\gamma)}{\delta} &= 2[(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)\cdot\psi^{'}]_{t_{1}}^{t_{N}} \\&+ 2\sum_{i=1}^{N-1}\int_{t_{i}}^{t_{i+1}}(\frac{d^{2}}{dt^{2}}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma)-(\gamma^{''}\cdot\gamma)\gamma^{''})\cdot\psi dt \tag{4.5}\end{aligned}
δ→0lim?δK(γ+δψ)?K(γ)??=2[(γ′′?(γ′′?γ)γ)?ψ′]t1?tN??+2i=1∑N?1?∫ti?ti+1??(dt2d2?(γ′′?(γ′′?γ)γ)?(γ′′?γ)γ′′)?ψdt?(4.5)由于
γ
?
γ
=
∥
γ
∥
=
1
\gamma\cdot\gamma=\left \| \gamma \right \|=1
γ?γ=∥γ∥=1,所以有:
0
=
(
1
)
′
′
=
(
γ
?
γ
)
′
′
=
2
γ
′
′
?
γ
+
2
γ
′
?
γ
′
(4.6)
0=(1)^{''}=(\gamma\cdot\gamma)^{''}=2\gamma^{''}\cdot\gamma+2\gamma^{'}\cdot\gamma^{'}\tag{4.6}
0=(1)′′=(γ?γ)′′=2γ′′?γ+2γ′?γ′(4.6)由于在控制點處對任意
ψ
\psi
ψ的導數必須為零(方程4.3),結合方程4.6,我們對解有以下要求:
γ
∈
C
4
(
(
I
)
,
H
1
)
0
=
γ
′
′
(
t
1
)
?
(
γ
′
′
(
t
1
)
?
γ
(
t
1
)
)
γ
(
t
1
)
0
=
γ
′
′
(
t
N
)
?
(
γ
′
′
(
t
N
)
?
γ
(
t
N
)
)
γ
(
t
N
)
(
γ
′
′
?
γ
)
γ
′
′
=
d
2
d
t
2
(
γ
′
′
?
(
γ
′
′
?
γ
)
γ
)
=
γ
′
′
′
′
?
(
γ
′
′
?
γ
)
′
′
γ
?
2
(
γ
′
′
?
γ
)
′
γ
′
?
(
γ
′
′
?
γ
)
γ
′
′
?
0
=
γ
′
′
′
′
+
(
γ
′
?
γ
′
)
′
′
γ
+
2
(
γ
′
?
γ
′
)
′
γ
′
+
2
(
γ
′
?
γ
′
)
γ
′
′
\begin{aligned} \gamma & \in C^{4}((I),H_{1}) \\ 0 &= \gamma^{''}(t_{1})-(\gamma^{''}(t_{1})\cdot\gamma(t_{1}))\gamma(t_{1}) \\ 0 &= \gamma^{''}(t_{N})-(\gamma^{''}(t_{N})\cdot\gamma(t_{N}))\gamma(t_{N}) \\ (\gamma^{''}\cdot\gamma)\gamma^{''} &= \frac{d^{2}}{dt^{2}}(\gamma^{''}-(\gamma^{''}\cdot\gamma)\gamma) \\&= \gamma^{''''}-(\gamma^{''}\cdot\gamma)^{''}\gamma-2(\gamma^{''}\cdot\gamma)^{'}\gamma^{'}-(\gamma^{''}\cdot\gamma)\gamma^{''} \\ \Rightarrow 0&= \gamma^{''''}+(\gamma^{'}\cdot\gamma^{'})^{''}\gamma+2(\gamma^{'}\cdot\gamma^{'})^{'}\gamma^{'}+2(\gamma^{'}\cdot\gamma^{'})\gamma^{''} \end{aligned}
γ00(γ′′?γ)γ′′?0?∈C4((I),H1?)=γ′′(t1?)?(γ′′(t1?)?γ(t1?))γ(t1?)=γ′′(tN?)?(γ′′(tN?)?γ(tN?))γ(tN?)=dt2d2?(γ′′?(γ′′?γ)γ)=γ′′′′?(γ′′?γ)′′γ?2(γ′′?γ)′γ′?(γ′′?γ)γ′′=γ′′′′+(γ′?γ′)′′γ+2(γ′?γ′)
- 標籤雲
-
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)
- 熱門瀏覽
-
-
如何從xshell上傳檔案到centos linux虛擬機里
如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......
uj5u.com 2020-09-10 02:00:47 more -
一、SQLMAP入門
一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......
uj5u.com 2020-09-10 02:00:50 more -
Metasploit 簡單使用教程
metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......
uj5u.com 2020-09-10 02:00:53 more -
游戲逆向之驅動層與用戶層通訊
驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......
uj5u.com 2020-09-10 02:00:56 more -
北斗電力時鐘(北斗授時服務器)讓網路資料更精準
北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......
uj5u.com 2020-09-10 02:01:03 more -
【CTF】CTFHub 技能樹 彩蛋 writeup
?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......
uj5u.com 2020-09-10 02:04:05 more -
02windows基礎操作
我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......
uj5u.com 2020-09-10 02:04:18 more -
03.Linux基礎操作
我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......
uj5u.com 2020-09-10 02:04:30 more
- 最新发布
-
-
2023年最新微信小程式抓包教程
01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......
uj5u.com 2023-04-20 08:48:24 more -
web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包
Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......
uj5u.com 2023-04-20 08:47:46 more -
vulnhub_Earth
前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......
uj5u.com 2023-04-20 07:46:20 more -
從4k到42k,軟體測驗工程師的漲薪史,給我看哭了
清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......
uj5u.com 2023-04-20 07:44:00 more -
最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇
🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......
uj5u.com 2023-04-20 07:43:36 more -
漫談前端自動化測驗演進之路及測驗工具分析
隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......
uj5u.com 2023-04-20 07:43:16 more -
CANN開發實踐:4個DVPP記憶體問題的典型案例解讀
摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......
uj5u.com 2023-04-20 07:43:03 more -
Halcon軟體安裝與界面簡介
1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......
uj5u.com 2023-04-20 07:42:17 more -
在MacOS下使用Unity3D開發游戲
第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......
uj5u.com 2023-04-20 07:40:19 more
-
- 友情鏈接
