式展開
間違いしかありません.コメントにてご指摘いただければ幸いです(気が付いた点を特に断りなく頻繁に書き直していますのでご注意ください).
Bezier曲線上の各点における接線ベクトルqと,その各点から任意の点zへのベクトルpとの内積が0となる媒介変数tを探す
Bezier曲線上の各点における接線ベクトル
q
→
と,その各点から任意の点
z
へのベクトル
p
→
との内積が
0
となる媒介変数
t
を探す
準備1
(
1
−
t
)
3
=
1
−
3
t
+
3
t
2
−
t
3
(
1
−
t
)
2
t
=
t
−
2
t
2
+
t
3
(
1
−
t
)
t
2
=
t
2
−
t
3
(
1
−
t
)
2
=
1
−
2
t
+
t
2
(
1
−
t
)
t
=
t
−
t
2
準備2
通
過
点
制
御
点
制
御
点
通
過
点
任
意
の
点
P
original
0
=
(
x
0
,
y
0
)
⋯
通
過
点
P
original
1
=
(
x
1
,
y
1
)
⋯
制
御
点
P
original
2
=
(
x
2
,
y
2
)
⋯
制
御
点
P
original
3
=
(
x
3
,
y
3
)
⋯
通
過
点
Z
=
(
z
x
,
z
y
)
⋯
任
意
の
点
Z
を原点
0
,
0
に移動させるように各点を平行移動する.平行移動しても求める
t
は変わらない.
を
原
点
に
移
動
さ
せ
る
よ
う
に
平
行
移
動
し
た
通
過
点
を
原
点
に
移
動
さ
せ
る
よ
う
に
平
行
移
動
し
た
制
御
点
を
原
点
に
移
動
さ
せ
る
よ
う
に
平
行
移
動
し
た
制
御
点
を
原
点
に
移
動
さ
せ
る
よ
う
に
平
行
移
動
し
た
通
過
点
P
0
=
(
x
0
−
z
x
,
y
0
−
z
y
)
=
(
a
,
p
)
⋯
Z
を
原
点
に
移
動
さ
せ
る
よ
う
に
平
行
移
動
し
た
通
過
点
P
1
=
(
x
1
−
z
x
,
y
1
−
z
y
)
=
(
b
,
q
)
⋯
Z
を
原
点
に
移
動
さ
せ
る
よ
う
に
平
行
移
動
し
た
制
御
点
P
2
=
(
x
2
−
z
x
,
y
2
−
z
y
)
=
(
c
,
r
)
⋯
Z
を
原
点
に
移
動
さ
せ
る
よ
う
に
平
行
移
動
し
た
制
御
点
P
3
=
(
x
3
−
z
x
,
y
3
−
z
y
)
=
(
d
,
s
)
⋯
Z
を
原
点
に
移
動
さ
せ
る
よ
う
に
平
行
移
動
し
た
通
過
点
3次のベジェ曲線(媒介変数
t
表示)
次
の
ベ
ジ
ェ
曲
線
準
備
参
照
Bezier
(
t
|
P
0
,
P
1
,
P
2
,
P
3
)
=
(
X
(
t
|
a
,
b
,
c
,
d
)
,
Y
(
t
|
p
,
q
,
r
,
s
)
)
t
∈
[
0
,
1
]
⋯
3
次
の
ベ
ジ
ェ
曲
線
X
(
t
|
a
,
b
,
c
,
d
)
=
a
(
1
−
t
)
3
+
3
b
(
1
−
t
)
2
t
+
3
c
(
1
−
t
)
t
2
+
d
t
3
=
a
(
1
−
3
t
+
3
t
2
−
t
3
)
+
3
b
(
t
−
2
t
2
+
t
3
)
+
3
c
(
t
2
−
t
3
)
+
d
t
3
⋯
準
備
参
照
=
a
−
3
a
t
+
3
a
t
2
−
a
t
3
+
3
b
t
−
6
b
t
2
+
3
b
t
3
+
3
c
t
2
−
3
c
t
3
+
d
t
3
=
a
−
3
a
t
+
3
b
t
+
3
a
t
2
−
6
b
t
2
+
3
c
t
2
−
a
t
3
+
3
b
t
3
−
3
c
t
3
+
d
t
3
=
a
+
(
−
3
a
+
3
b
)
t
+
(
3
a
−
6
b
+
3
c
)
t
2
+
(
−
a
+
3
b
−
3
c
+
d
)
t
3
=
A
+
3
B
t
+
3
C
t
2
+
D
t
3
⋯
A
=
a
,
B
=
−
a
+
b
,
C
=
a
−
2
b
+
c
,
D
=
−
a
+
3
b
−
3
c
+
d
Y
(
t
|
p
,
q
,
r
,
s
)
=
p
(
1
−
t
)
3
+
3
q
(
1
−
t
)
2
t
+
3
r
(
1
−
t
)
t
2
+
s
t
3
=
a
+
(
−
3
p
+
3
q
)
t
+
(
3
p
−
6
q
+
3
r
)
t
2
+
(
−
p
+
3
q
−
3
r
+
s
)
t
3
=
P
+
3
Q
t
+
3
R
t
2
+
S
t
3
⋯
P
=
p
,
Q
=
−
p
+
q
,
R
=
p
−
2
q
+
r
,
S
=
−
p
+
3
q
−
3
r
+
s
3次のベジェ曲線の
X
(
t
)
,
Y
(
t
)
の微分
d
d
t
X
(
t
)
=
3
B
+
6
C
t
+
3
D
t
2
d
d
t
Y
(
t
)
=
3
Q
+
6
R
t
+
3
S
t
2
任意の点
Z
(
z
x
,
z
y
)
とBezier曲線上の点
Bezier
(
t
|
P
original
0
,
P
original
1
,
P
original
2
,
P
original
3
)
とのベクトル
p
→
=
(
X
(
t
|
P
original
0
,
P
original
1
,
P
original
2
,
P
original
3
)
−
z
x
,
Y
(
t
|
P
original
0
,
P
original
1
,
P
original
2
,
P
original
3
)
−
z
y
)
平行移動した
P
0
=
(
a
,
p
)
,
P
1
=
(
b
,
q
)
,
P
2
=
(
c
,
r
)
,
P
3
=
(
d
,
s
)
を用いると任意の点
Z
(
z
x
,
z
y
)
は原点
(
0
,
0
)
になるので以下のように表せる.
p
→
=
(
X
(
t
|
a
,
b
,
c
,
d
)
,
Y
(
t
|
p
,
q
,
r
,
s
)
)
=
(
A
+
3
B
t
+
3
C
t
2
+
D
t
3
,
P
+
3
Q
t
+
3
R
t
2
+
S
t
3
)
またこの時のBezier曲線上の点の接線は以下となる.
q
→
=
(
d
d
t
X
(
t
|
a
,
b
,
c
,
d
)
,
d
d
t
Y
(
t
|
p
,
q
,
r
,
s
)
)
=
(
3
B
+
6
C
t
+
3
D
t
2
,
3
Q
+
6
R
t
+
3
S
t
2
)
この両ベクトルが直角をなす時,つまり内積が
0
となる時の
t
を求める.
は
と
の
な
す
角
で
直
角
と
す
る
の
で
.
よ
っ
て
内
積
全
体
も
.
内
積
の
成
分
表
示
両
辺
で
割
っ
た
.
左
辺
は
な
の
で
変
わ
ら
ず
.
p
→
⋅
q
→
=
|
p
→
|
|
q
→
|
cos
(
π
2
)
=
|
p
→
|
|
q
→
|
⋅
0
=
0
⋯
θ
は
p
→
と
q
→
の
な
す
角
で
直
角
π
2
と
す
る
の
で
cos
(
π
2
)
=
0
.
よ
っ
て
内
積
全
体
も
0
.
0
=
p
→
⋅
q
→
=
p
x
q
x
+
p
y
q
y
⋯
内
積
の
成
分
表
示
=
X
(
t
|
a
,
b
,
c
,
d
)
(
d
d
t
X
(
t
|
a
,
b
,
c
,
d
)
)
+
Y
(
t
|
p
,
q
,
r
,
s
)
(
d
d
t
Y
(
t
|
p
,
q
,
r
,
s
)
)
=
(
A
+
3
B
t
+
3
C
t
2
+
D
t
3
)
(
3
B
+
6
C
t
+
3
D
t
2
)
+
(
P
+
3
Q
t
+
3
R
t
2
+
S
t
3
)
(
3
Q
+
6
R
t
+
3
S
t
2
)
=
A
(
3
B
+
6
C
t
+
3
D
t
2
)
+
3
B
t
(
3
B
+
6
C
t
+
3
D
t
2
)
+
3
C
t
2
(
3
B
+
6
C
t
+
3
D
t
2
)
+
D
t
3
(
3
B
+
6
C
t
+
3
D
t
2
)
+
P
(
3
Q
+
6
R
t
+
3
S
t
2
)
+
3
Q
t
(
3
Q
+
6
R
t
+
3
S
t
2
)
+
3
R
t
2
(
3
Q
+
6
R
t
+
3
S
t
2
)
+
S
t
3
(
3
Q
+
6
R
t
+
3
S
t
2
)
=
3
A
B
+
6
A
C
t
+
3
A
D
t
2
+
9
B
2
t
+
18
B
C
t
2
+
9
B
D
t
3
+
9
B
C
t
2
+
18
C
2
t
3
+
9
C
D
t
4
+
3
B
D
t
3
+
6
C
D
t
4
+
3
D
2
t
5
+
3
P
Q
+
6
P
R
t
+
3
P
S
t
2
+
9
Q
2
t
+
18
Q
R
t
2
+
9
Q
S
t
3
+
9
Q
R
t
2
+
18
R
2
t
3
+
9
R
S
t
4
+
3
Q
S
t
3
+
6
R
S
t
4
+
3
S
2
t
5
=
3
A
B
+
3
(
2
A
C
+
3
B
2
)
t
+
3
(
A
D
+
9
B
C
)
t
2
+
3
(
4
B
D
+
6
C
2
)
t
3
+
3
⋅
5
C
D
t
4
+
3
D
2
t
5
+
3
P
Q
+
3
(
2
P
R
+
3
Q
2
)
t
+
3
(
P
S
+
9
Q
R
)
t
2
+
3
(
4
Q
S
+
6
R
2
)
t
3
+
3
⋅
5
R
S
t
4
+
3
S
2
t
5
=
3
(
A
B
+
(
2
A
C
+
3
B
2
)
t
+
(
A
D
+
9
B
C
)
t
2
+
(
4
B
D
+
6
C
2
)
t
3
+
5
C
D
t
4
+
D
2
t
5
)
+
3
(
P
Q
+
(
2
P
R
+
3
Q
2
)
t
+
(
P
S
+
9
Q
R
)
t
2
+
(
4
Q
S
+
6
R
2
)
t
3
+
5
R
S
t
4
+
S
2
t
5
)
0
=
A
B
+
(
2
A
C
+
3
B
2
)
t
+
(
A
D
+
9
B
C
)
t
2
+
(
4
B
D
+
6
C
2
)
t
3
+
5
C
D
t
4
+
D
2
t
5
+
P
Q
+
(
2
P
R
+
3
Q
2
)
t
+
(
P
S
+
9
Q
R
)
t
2
+
(
4
Q
S
+
6
R
2
)
t
3
+
5
R
S
t
4
+
S
2
t
5
⋯
両
辺
3
で
割
っ
た
.
左
辺
は
0
な
の
で
変
わ
ら
ず
.
=
(
A
B
+
P
Q
)
+
(
2
A
C
+
3
B
2
+
2
P
R
+
3
Q
2
)
t
+
(
A
D
+
9
B
C
+
P
S
+
9
Q
R
)
t
2
+
(
4
B
D
+
6
C
2
+
4
Q
S
+
6
R
2
)
t
3
+
(
5
C
D
+
5
R
S
)
t
4
+
(
D
2
+
S
2
)
t
5
=
α
0
+
α
1
t
+
α
2
t
2
+
α
3
t
3
+
α
4
t
4
+
α
5
t
5
⋯
α
0
=
A
B
+
P
Q
⋯
α
1
=
2
A
C
+
3
B
2
+
2
P
R
+
3
Q
2
⋯
α
2
=
A
D
+
9
B
C
+
P
S
+
9
Q
R
⋯
α
3
=
4
B
D
+
6
C
2
+
4
Q
S
+
6
R
2
⋯
α
4
=
5
C
D
+
5
R
S
⋯
α
5
=
D
2
+
S
2
⋯
A
=
a
,
B
=
−
a
+
b
,
C
=
a
−
2
b
+
c
,
D
=
−
a
+
3
b
−
3
c
+
d
⋯
P
=
p
,
Q
=
−
p
+
q
,
R
=
p
−
2
q
+
r
,
S
=
−
p
+
3
q
−
3
r
+
s
t
を求めるには この5次方程式を解けばよいが,5次ということで数値計算で解く等が必要.
解は5つあるわけだが,その内実数であるものを選ぶ.
また,
t
∈
[
0
,
1
]
であるので,
t
<
0
なら
t
=
0
,
t
>
1
なら
t
=
1
とする.
この式はBezier曲線と任意点との距離の凾数を微分して得る方程式に等しい
.
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿