2次ベジェ曲線
2次ベジェ曲線の基底関数
ド・カステリョのアルゴリズムによる2次ベジェ曲線の描画
2次ベジェ曲線 (英語版 ) ( にじベジェきょくせん 、( 英 : quadratic Bézier curve ) は3つの制御点で構成されるベジェ曲線である。
2次ベジェ曲線は次の式で定義される[ 16] :
P
(
t
)
=
∑
i
=
0
2
B
i
J
2
,
i
(
t
)
=
(
1
−
t
)
2
B
0
+
2
t
(
1
−
t
)
B
1
+
t
2
B
2
=
(
B
0
−
2
B
1
+
B
2
)
t
2
+
(
−
2
B
0
+
2
B
1
)
t
+
B
0
{\displaystyle {\begin{aligned}\mathbf {P} (t)&=\sum _{i=0}^{2}\mathbf {B} _{i}J_{2,i}(t)\\&=(1-t)^{2}\mathbf {B} _{0}+2t(1-t)\mathbf {B} _{1}+t^{2}\mathbf {B} _{2}\\&=(\mathbf {B} _{0}-2\mathbf {B} _{1}+\mathbf {B} _{2})t^{2}+(-2\mathbf {B} _{0}+2\mathbf {B} _{1})t+\mathbf {B} _{0}\\\end{aligned}}}
上式よりベジェ曲線の性質を満たすことが容易に確認できる。t の次数より2次ベジェ曲線は高々 2次の曲線であると確認でき、代入によりP (0) = B 0 と P (1) = B 2 で両端制御点の通過が確認できる。
2次ベジェ曲線の行列形式
P
(
t
)
=
[
t
2
t
1
]
[
1
−
2
1
−
2
2
0
1
0
0
]
[
B
0
B
1
B
2
]
{\displaystyle \mathbf {P} (t)={\begin{bmatrix}t^{2}&t&1\end{bmatrix}}{\begin{bmatrix}1&-2&1\\-2&2&0\\1&0&0\end{bmatrix}}{\begin{bmatrix}\mathbf {B} _{0}\\\mathbf {B} _{1}\\\mathbf {B} _{2}\end{bmatrix}}}
2次ベジェ曲線の面積
曲線の始点と終点および原点で囲まれた領域の面積はガウスグリーンの定理[ 17] で求めることができる。
S
=
1
6
[
B
0
x
B
1
x
B
2
x
]
[
0
2
1
−
2
0
2
−
1
−
2
0
]
[
B
0
y
B
1
y
B
2
y
]
{\displaystyle S={\frac {1}{6}}{\begin{bmatrix}{B_{0}}_{x}&{B_{1}}_{x}&{B_{2}}_{x}\end{bmatrix}}{\begin{bmatrix}0&2&1\\-2&0&2\\-1&-2&0\end{bmatrix}}{\begin{bmatrix}{B_{0}}_{y}\\{B_{1}}_{y}\\{B_{2}}_{y}\end{bmatrix}}}
2次ベジェ曲線と等価な3次ベジェ曲線の制御点は
[
B
0
B
0
+
2
B
1
3
2
B
1
+
B
2
3
B
2
]
{\displaystyle {\begin{bmatrix}\mathbf {B} _{0}&{\frac {\mathbf {B} _{0}+2\mathbf {B} _{1}}{3}}&{\frac {2\mathbf {B} _{1}+\mathbf {B} _{2}}{3}}&\mathbf {B} _{2}\end{bmatrix}}}
である。
3次ベジェ曲線
3次ベジェ曲線の基底関数
ド・カステリョのアルゴリズムによる3次ベジェ曲線の描画
3次ベジェ曲線 (英語版 ) ( さんじベジェきょくせん 、( 英 : cubic Bézier curve ) は4つの制御点で構成されるベジェ曲線である[ 20] 。
3次ベジェ曲線は次の式で定義される:
P
(
t
)
=
∑
i
=
0
3
B
i
J
3
,
i
(
t
)
=
(
1
−
t
)
3
B
0
+
3
t
(
1
−
t
)
2
B
1
+
3
t
2
(
1
−
t
)
B
2
+
t
3
B
3
=
(
−
B
0
+
3
B
1
−
3
B
2
+
B
3
)
t
3
+
(
3
B
0
−
6
B
1
+
3
B
2
)
t
2
+
(
−
3
B
0
+
3
B
1
)
t
+
B
0
{\displaystyle {\begin{aligned}\mathbf {P} (t)&=\sum _{i=0}^{3}\mathbf {B} _{i}J_{3,i}(t)\\&=(1-t)^{3}\mathbf {B} _{0}+3t(1-t)^{2}\mathbf {B} _{1}+3t^{2}(1-t)\mathbf {B} _{2}+t^{3}\mathbf {B} _{3}\\&=(-\mathbf {B} _{0}+3\mathbf {B} _{1}-3\mathbf {B} _{2}+\mathbf {B} _{3})t^{3}+(3\mathbf {B} _{0}-6\mathbf {B} _{1}+3\mathbf {B} _{2})t^{2}+(-3\mathbf {B} _{0}+3\mathbf {B} _{1})t+\mathbf {B} _{0}\\\end{aligned}}}
上式よりベジェ曲線の性質を満たすことが容易に確認できる。t の次数より3次ベジェ曲線は高々 3次の曲線であると確認でき、代入による P (0) = B 0 と P (1) = B 3 で両端制御点の通過が確認できる。
P (t ) を t で1階微分し端の制御点を代入することで、端点での接線ベクトルが求まる。これにより、
d
P
(
t
)
d
t
=
∑
i
=
0
3
B
i
J
3
,
i
(
t
)
=
−
3
(
1
−
t
)
2
B
0
+
(
9
t
2
−
12
t
+
3
)
B
1
+
(
−
9
t
2
+
6
t
)
B
2
+
3
t
2
B
3
=
3
(
−
B
0
+
3
B
1
−
3
B
2
+
B
3
)
t
2
+
2
(
3
B
0
−
6
B
1
+
3
B
2
)
t
+
3
(
−
B
0
+
B
1
)
{\displaystyle {\begin{aligned}{d\mathbf {P} (t) \over dt}&=\sum _{i=0}^{3}\mathbf {B} _{i}J_{3,i}(t)\\&=-3(1-t)^{2}\mathbf {B} _{0}+(9t^{2}-12t+3)\mathbf {B} _{1}+(-9t^{2}+6t)\mathbf {B} _{2}+3t^{2}\mathbf {B} _{3}\\&=3(-\mathbf {B} _{0}+3\mathbf {B} _{1}-3\mathbf {B} _{2}+\mathbf {B} _{3})t^{2}+2(3\mathbf {B} _{0}-6\mathbf {B} _{1}+3\mathbf {B} _{2})t+3(-\mathbf {B} _{0}+\mathbf {B} _{1})\\\end{aligned}}}
d
P
(
0
)
d
t
=
3
(
−
B
0
+
B
1
)
=
3
B
0
B
1
→
d
P
(
1
)
d
t
=
3
(
−
B
2
+
B
3
)
=
3
B
2
B
3
→
{\displaystyle {\begin{array}{lcl}{d\mathbf {P} (0) \over dt}&=&3(-\mathbf {B} _{0}+\mathbf {B} _{1})&=3{\overrightarrow {\mathbf {B} _{0}\mathbf {B} _{1}}}\\{d\mathbf {P} (1) \over dt}&=&3(-\mathbf {B} _{2}+\mathbf {B} _{3})&=3{\overrightarrow {\mathbf {B} _{2}\mathbf {B} _{3}}}\\\end{array}}}
となり、端点とその隣の制御点で端点の接線が定まることがわかる[ 21] 。
3次ベジェ曲線の行列形式[ 22]
P
(
t
)
=
[
t
3
t
2
t
1
]
[
−
1
3
−
3
1
3
−
6
3
0
−
3
3
0
0
1
0
0
0
]
[
B
0
B
1
B
2
B
3
]
{\displaystyle \mathbf {P} (t)={\begin{bmatrix}t^{3}&t^{2}&t&1\end{bmatrix}}{\begin{bmatrix}-1&3&-3&1\\3&-6&3&0\\-3&3&0&0\\1&0&0&0\end{bmatrix}}{\begin{bmatrix}\mathbf {B} _{0}\\\mathbf {B} _{1}\\\mathbf {B} _{2}\\\mathbf {B} _{3}\end{bmatrix}}}
3次ベジェ曲線の陰関数表現
a
0
=
−
B
0
x
+
3
B
1
x
−
3
B
2
x
+
B
3
x
a
1
=
3
B
0
x
−
6
B
1
x
+
3
B
2
x
a
2
=
−
3
B
0
x
+
3
B
1
x
a
3
=
B
0
x
b
0
=
−
B
0
y
+
3
B
1
y
−
3
B
2
y
+
B
3
y
b
1
=
3
B
0
y
−
6
B
1
y
+
3
B
2
y
b
2
=
−
3
B
0
y
+
3
B
1
y
b
3
=
B
0
y
x
=
a
0
t
3
+
a
1
t
2
+
a
2
t
+
a
3
y
=
b
0
t
3
+
b
1
t
2
+
b
2
t
+
b
3
{\displaystyle {\begin{array}{l}a_{0}=-{B_{0}}_{x}+3{B_{1}}_{x}-3{B_{2}}_{x}+{B_{3}}_{x}\\a_{1}=3{B_{0}}_{x}-6{B_{1}}_{x}+3{B_{2}}_{x}\\a_{2}=-3{B_{0}}_{x}+3{B_{1}}_{x}\\a_{3}={B_{0}}_{x}\\b_{0}=-{B_{0}}_{y}+3{B_{1}}_{y}-3{B_{2}}_{y}+{B_{3}}_{y}\\b_{1}=3{B_{0}}_{y}-6{B_{1}}_{y}+3{B_{2}}_{y}\\b_{2}=-3{B_{0}}_{y}+3{B_{1}}_{y}\\b_{3}={B_{0}}_{y}\\x=a_{0}t^{3}+a_{1}t^{2}+a_{2}t+a_{3}\\y=b_{0}t^{3}+b_{1}t^{2}+b_{2}t+b_{3}\end{array}}}
とすると、
F
(
x
,
y
)
=
a
3
3
b
0
3
−
a
2
a
3
2
b
0
2
b
1
+
a
1
a
3
2
b
0
b
1
2
−
a
0
a
3
2
b
1
3
+
a
2
2
a
3
b
0
2
b
2
−
2
a
1
a
3
2
b
0
2
b
2
−
a
1
a
2
a
3
b
0
b
1
b
2
+
3
a
0
a
3
2
b
0
b
1
b
2
+
a
0
a
2
a
3
b
1
2
b
2
+
a
1
2
a
3
b
0
b
2
2
−
2
a
0
a
2
a
3
b
0
b
2
2
−
a
0
a
1
a
3
b
1
b
2
2
+
a
0
2
a
3
b
2
3
−
a
2
3
b
0
2
b
3
+
3
a
1
a
2
a
3
b
0
2
b
3
−
3
a
0
a
3
2
b
0
2
b
3
+
a
1
a
2
2
b
0
b
1
b
3
−
2
a
1
2
a
3
b
0
b
1
b
3
−
a
0
a
2
a
3
b
0
b
1
b
3
−
a
0
a
2
2
b
1
2
b
3
+
2
a
0
a
1
a
3
b
1
2
b
3
−
a
1
2
a
2
b
0
b
2
b
3
+
2
a
0
a
2
2
b
0
b
2
b
3
+
a
0
a
1
a
3
b
0
b
2
b
3
+
a
0
a
1
a
2
b
1
b
2
b
3
−
3
a
0
2
a
3
b
1
b
2
b
3
−
a
0
2
a
2
b
2
2
b
3
+
a
1
3
b
0
b
3
2
−
3
a
0
a
1
a
2
b
0
b
3
2
+
3
a
0
2
a
3
b
0
b
3
2
−
a
0
a
1
2
b
1
b
3
2
+
2
a
0
2
a
2
b
1
b
3
2
+
a
0
2
a
1
b
2
b
3
2
−
a
0
3
b
3
3
+
(
−
3
a
3
2
b
0
3
+
2
a
2
a
3
b
0
2
b
1
−
2
a
1
a
3
b
0
b
1
2
+
2
a
0
a
3
b
1
3
−
a
2
2
b
0
2
b
2
+
4
a
1
a
3
b
0
2
b
2
+
a
1
a
2
b
0
b
1
b
2
−
6
a
0
a
3
b
0
b
1
b
2
−
a
0
a
2
b
1
2
b
2
−
a
1
2
b
0
b
2
2
+
2
a
0
a
2
b
0
b
2
2
+
a
0
a
1
b
1
b
2
2
−
a
0
2
b
2
3
−
3
a
1
a
2
b
0
2
b
3
+
6
a
0
a
3
b
0
2
b
3
+
2
a
1
2
b
0
b
1
b
3
+
a
0
a
2
b
0
b
1
b
3
−
2
a
0
a
1
b
1
2
b
3
−
a
0
a
1
b
0
b
2
b
3
+
3
a
0
2
b
1
b
2
b
3
−
3
a
0
2
b
0
b
3
2
)
x
+
(
a
2
3
b
0
2
−
3
a
1
a
2
a
3
b
0
2
+
3
a
0
a
3
2
b
0
2
−
a
1
a
2
2
b
0
b
1
+
2
a
1
2
a
3
b
0
b
1
+
a
0
a
2
a
3
b
0
b
1
+
a
0
a
2
2
b
1
2
−
2
a
0
a
1
a
3
b
1
2
+
a
1
2
a
2
b
0
b
2
−
2
a
0
a
2
2
b
0
b
2
−
a
0
a
1
a
3
b
0
b
2
−
a
0
a
1
a
2
b
1
b
2
+
3
a
0
2
a
3
b
1
b
2
+
a
0
2
a
2
b
2
2
−
2
a
1
3
b
0
b
3
+
6
a
0
a
1
a
2
b
0
b
3
−
6
a
0
2
a
3
b
0
b
3
+
2
a
0
a
1
2
b
1
b
3
−
4
a
0
2
a
2
b
1
b
3
−
2
a
0
2
a
1
b
2
b
3
+
3
a
0
3
b
3
2
)
y
+
(
3
a
3
b
0
3
−
a
2
b
0
2
b
1
+
a
1
b
0
b
1
2
−
a
0
b
1
3
−
2
a
1
b
0
2
b
2
+
3
a
0
b
0
b
1
b
2
−
3
a
0
b
0
2
b
3
)
x
2
+
(
3
a
1
a
2
b
0
2
−
6
a
0
a
3
b
0
2
−
2
a
1
2
b
0
b
1
−
a
0
a
2
b
0
b
1
+
2
a
0
a
1
b
1
2
+
a
0
a
1
b
0
b
2
−
3
a
0
2
b
1
b
2
+
6
a
0
2
b
0
b
3
)
x
y
+
(
a
1
3
b
0
−
3
a
0
a
1
a
2
b
0
+
3
a
0
2
a
3
b
0
−
a
0
a
1
2
b
1
+
2
a
0
2
a
2
b
1
+
a
0
2
a
1
b
2
−
3
a
0
3
b
3
)
y
2
−
b
0
3
x
3
+
3
a
0
b
0
2
x
2
y
−
3
a
0
2
b
0
x
y
2
+
a
0
3
y
3
=
0
{\displaystyle {\begin{array}{l}F(x,y)=a_{3}^{3}b_{0}^{3}-a_{2}a_{3}^{2}b_{0}^{2}b_{1}+a_{1}a_{3}^{2}b_{0}b_{1}^{2}-a_{0}a_{3}^{2}b_{1}^{3}+a_{2}^{2}a_{3}b_{0}^{2}b_{2}-2a_{1}a_{3}^{2}b_{0}^{2}b_{2}-a_{1}a_{2}a_{3}b_{0}b_{1}b_{2}+3a_{0}a_{3}^{2}b_{0}b_{1}b_{2}\\\qquad +a_{0}a_{2}a_{3}b_{1}^{2}b_{2}+a_{1}^{2}a_{3}b_{0}b_{2}^{2}-2a_{0}a_{2}a_{3}b_{0}b_{2}^{2}-a_{0}a_{1}a_{3}b_{1}b_{2}^{2}+a_{0}^{2}a_{3}b_{2}^{3}-a_{2}^{3}b_{0}^{2}b_{3}+3a_{1}a_{2}a_{3}b_{0}^{2}b_{3}\\\qquad -3a_{0}a_{3}^{2}b_{0}^{2}b_{3}+a_{1}a_{2}^{2}b_{0}b_{1}b_{3}-2a_{1}^{2}a_{3}b_{0}b_{1}b_{3}-a_{0}a_{2}a_{3}b_{0}b_{1}b_{3}-a_{0}a_{2}^{2}b_{1}^{2}b_{3}+2a_{0}a_{1}a_{3}b_{1}^{2}b_{3}\\\qquad -a_{1}^{2}a_{2}b_{0}b_{2}b_{3}+2a_{0}a_{2}^{2}b_{0}b_{2}b_{3}+a_{0}a_{1}a_{3}b_{0}b_{2}b_{3}+a_{0}a_{1}a_{2}b_{1}b_{2}b_{3}-3a_{0}^{2}a_{3}b_{1}b_{2}b_{3}-a_{0}^{2}a_{2}b_{2}^{2}b_{3}\\\qquad +a_{1}^{3}b_{0}b_{3}^{2}-3a_{0}a_{1}a_{2}b_{0}b_{3}^{2}+3a_{0}^{2}a_{3}b_{0}b_{3}^{2}-a_{0}a_{1}^{2}b_{1}b_{3}^{2}+2a_{0}^{2}a_{2}b_{1}b_{3}^{2}+a_{0}^{2}a_{1}b_{2}b_{3}^{2}-a_{0}^{3}b_{3}^{3}\\\quad +(-3a_{3}^{2}b_{0}^{3}+2a_{2}a_{3}b_{0}^{2}b_{1}-2a_{1}a_{3}b_{0}b_{1}^{2}+2a_{0}a_{3}b_{1}^{3}-a_{2}^{2}b_{0}^{2}b_{2}+4a_{1}a_{3}b_{0}^{2}b_{2}+a_{1}a_{2}b_{0}b_{1}b_{2}-6a_{0}a_{3}b_{0}b_{1}b_{2}\\\qquad -a_{0}a_{2}b_{1}^{2}b_{2}-a_{1}^{2}b_{0}b_{2}^{2}+2a_{0}a_{2}b_{0}b_{2}^{2}+a_{0}a_{1}b_{1}b_{2}^{2}-a_{0}^{2}b_{2}^{3}-3a_{1}a_{2}b_{0}^{2}b_{3}+6a_{0}a_{3}b_{0}^{2}b_{3}+2a_{1}^{2}b_{0}b_{1}b_{3}\\\qquad +a_{0}a_{2}b_{0}b_{1}b_{3}-2a_{0}a_{1}b_{1}^{2}b_{3}-a_{0}a_{1}b_{0}b_{2}b_{3}+3a_{0}^{2}b_{1}b_{2}b_{3}-3a_{0}^{2}b_{0}b_{3}^{2})x\\\quad +(a_{2}^{3}b_{0}^{2}-3a_{1}a_{2}a_{3}b_{0}^{2}+3a_{0}a_{3}^{2}b_{0}^{2}-a_{1}a_{2}^{2}b_{0}b_{1}+2a_{1}^{2}a_{3}b_{0}b_{1}+a_{0}a_{2}a_{3}b_{0}b_{1}+a_{0}a_{2}^{2}b_{1}^{2}-2a_{0}a_{1}a_{3}b_{1}^{2}\\\qquad +a_{1}^{2}a_{2}b_{0}b_{2}-2a_{0}a_{2}^{2}b_{0}b_{2}-a_{0}a_{1}a_{3}b_{0}b_{2}-a_{0}a_{1}a_{2}b_{1}b_{2}+3a_{0}^{2}a_{3}b_{1}b_{2}+a_{0}^{2}a_{2}b_{2}^{2}-2a_{1}^{3}b_{0}b_{3}\\\qquad +6a_{0}a_{1}a_{2}b_{0}b_{3}-6a_{0}^{2}a_{3}b_{0}b_{3}+2a_{0}a_{1}^{2}b_{1}b_{3}-4a_{0}^{2}a_{2}b_{1}b_{3}-2a_{0}^{2}a_{1}b_{2}b_{3}+3a_{0}^{3}b_{3}^{2})y\\\quad +(3a_{3}b_{0}^{3}-a_{2}b_{0}^{2}b_{1}+a_{1}b_{0}b_{1}^{2}-a_{0}b_{1}^{3}-2a_{1}b_{0}^{2}b_{2}+3a_{0}b_{0}b_{1}b_{2}-3a_{0}b_{0}^{2}b_{3})x^{2}\\\quad +(3a_{1}a_{2}b_{0}^{2}-6a_{0}a_{3}b_{0}^{2}-2a_{1}^{2}b_{0}b_{1}-a_{0}a_{2}b_{0}b_{1}+2a_{0}a_{1}b_{1}^{2}+a_{0}a_{1}b_{0}b_{2}-3a_{0}^{2}b_{1}b_{2}+6a_{0}^{2}b_{0}b_{3})xy\\\quad +(a_{1}^{3}b_{0}-3a_{0}a_{1}a_{2}b_{0}+3a_{0}^{2}a_{3}b_{0}-a_{0}a_{1}^{2}b_{1}+2a_{0}^{2}a_{2}b_{1}+a_{0}^{2}a_{1}b_{2}-3a_{0}^{3}b_{3})y^{2}\\\quad -b_{0}^{3}x^{3}+3a_{0}b_{0}^{2}x^{2}y-3a_{0}^{2}b_{0}xy^{2}+a_{0}^{3}y^{3}\qquad =0\end{array}}}
となる。
3次ベジェ曲線の類型、判別
3次ベジェ曲線は、変曲点 、ループ(自己交差)、カスプ(尖点) 、のいずれかを含む場合がある。以下類型に分類される
[ 23]
[ 24]
。
3次ベジェ曲線の類型[ 25]
類型のどれにあてはまるかを判別するためには、まず、各制御点をアフィン写像して、
B
0
{\displaystyle {\mathbf {B} }_{0}}
が
(
0
,
0
)
{\displaystyle (0,0)}
、
B
1
{\displaystyle {\mathbf {B} }_{1}}
が
(
0
,
1
)
{\displaystyle (0,1)}
、
B
2
{\displaystyle {\mathbf {B} }_{2}}
が
(
1
,
1
)
{\displaystyle (1,1)}
である正準形式 (英語版 ) に変換する。
各類型を正準形式に変換[ 26]
次に、正準形式に変換した
B
3
{\displaystyle {\mathbf {B} }_{3}}
を以下の判別図にプロットして判定する。
正準形式の判別図[ 27]
変曲点は、曲率の定義より
x
′
y
″
−
y
′
x
″
=
0
{\displaystyle x'y''-y'x''=0}
となる以下の
t
1
,
t
2
{\displaystyle t_{1},\ t_{2}}
(ただし
t
1
∈
[
0
,
1
]
,
t
2
∈
[
0
,
1
]
{\displaystyle t_{1}\in [0,1],\ t_{2}\in [0,1]}
)である。
t
1
=
−
3
w
+
9
w
2
−
12
u
v
6
v
,
t
2
=
−
3
w
−
9
w
2
−
12
u
v
6
v
{\displaystyle t_{1}={\frac {-3w+{\sqrt {9w^{2}-12uv}}}{6v}},\ t_{2}={\frac {-3w-{\sqrt {9w^{2}-12uv}}}{6v}}}
ただし、
a
0
=
−
B
0
x
+
3
B
1
x
−
3
B
2
x
+
B
3
x
,
a
1
=
3
B
0
x
−
6
B
1
x
+
3
B
2
x
,
a
2
=
−
3
B
0
x
+
3
B
1
x
,
a
3
=
B
0
x
b
0
=
−
B
0
y
+
3
B
1
y
−
3
B
2
y
+
B
3
y
,
b
1
=
3
B
0
y
−
6
B
1
y
+
3
B
2
y
,
b
2
=
−
3
B
0
y
+
3
B
1
y
,
b
3
=
B
0
y
x
=
f
(
t
)
=
a
0
t
3
+
a
1
t
2
+
a
2
t
+
a
3
,
y
=
g
(
t
)
=
b
0
t
3
+
b
1
t
2
+
b
2
t
+
b
3
u
=
a
1
b
2
−
a
2
b
1
,
v
=
a
0
b
1
−
a
1
b
0
,
w
=
a
0
b
2
−
a
2
b
0
{\displaystyle {\begin{array}{l}a_{0}=-{B_{0}}_{x}+3{B_{1}}_{x}-3{B_{2}}_{x}+{B_{3}}_{x},\ a_{1}=3{B_{0}}_{x}-6{B_{1}}_{x}+3{B_{2}}_{x},\ a_{2}=-3{B_{0}}_{x}+3{B_{1}}_{x},\ a_{3}={B_{0}}_{x}\\b_{0}=-{B_{0}}_{y}+3{B_{1}}_{y}-3{B_{2}}_{y}+{B_{3}}_{y},\ b_{1}=3{B_{0}}_{y}-6{B_{1}}_{y}+3{B_{2}}_{y},\ b_{2}=-3{B_{0}}_{y}+3{B_{1}}_{y},\ b_{3}={B_{0}}_{y}\\x=f(t)=a_{0}t^{3}+a_{1}t^{2}+a_{2}t+a_{3},\ y=g(t)=b_{0}t^{3}+b_{1}t^{2}+b_{2}t+b_{3}\\u=a_{1}b_{2}-a_{2}b_{1},\ v=a_{0}b_{1}-a_{1}b_{0},\ w=a_{0}b_{2}-a_{2}b_{0}\end{array}}}
とする。
ループの場合の交点は、
f
(
t
1
)
=
f
(
t
2
)
{\displaystyle f(t_{1})=f(t_{2})}
かつ
g
(
t
1
)
=
g
(
t
2
)
{\displaystyle g(t_{1})=g(t_{2})}
となる以下の
t
1
,
t
2
{\displaystyle t_{1},\ t_{2}}
(ただし
t
1
∈
[
0
,
1
]
,
t
2
∈
[
0
,
1
]
,
t
1
≠
t
2
{\displaystyle t_{1}\in [0,1],\ t_{2}\in [0,1],\ t_{1}\neq t_{2}}
)である
[ 28]
[ 29]
。
t
1
=
−
w
+
4
u
v
−
3
w
2
2
v
,
t
2
=
−
w
−
4
u
v
−
3
w
2
2
v
{\displaystyle t_{1}={\frac {-w+{\sqrt {4uv-3w^{2}}}}{2v}},\ t_{2}={\frac {-w-{\sqrt {4uv-3w^{2}}}}{2v}}}
カスプの場合は、上式の
4
u
v
−
3
w
2
=
0
{\displaystyle 4uv-3w^{2}=0}
、よって
t
1
=
t
2
{\displaystyle t_{1}=\ t_{2}}
となり、カスプ点を表す。