diff --git a/components/sections/decasteljau/content.ja-JP.md b/components/sections/decasteljau/content.ja-JP.md new file mode 100644 index 00000000..71f8fee9 --- /dev/null +++ b/components/sections/decasteljau/content.ja-JP.md @@ -0,0 +1,54 @@ +# ド・カステリョのアルゴリズム + +ベジエ曲線を描く場合は、`t`の値を0から1まで動かしながら重みつき基底関数を計算し、プロットに必要な`x/y`の値を求めます。しかし、曲線が複雑になればなるほど、計算コストがかかるようになってしまいます。そこでその代わりに、「ド・カステリョのアルゴリズム」を使って曲線を描くこともできます。こちらは幾何学的に曲線を描く方法で、実装も非常に簡単です。実際、鉛筆と定規を使って手描きすることもできるほど、とても簡単な方法なのです。 + +`x/y`の値を求めるために関数を使うのではなく、次のようにします。 + +- `t`を(そのまま)比率として考えます。t=0は直線上の0%の位置、t=1は100%の位置です。 +- 曲線を定める点同士を結ぶように、それぞれ直線を引きます。`n`次の曲線であれば、`n`本の直線を引きます。 +- 各直線上において、距離が`t`となる点にそれぞれ印をつけます。例えば`t`が0.2なら、始点から20%、終点から80%の位置になります。 +- 今度は、`それらの`点同士を直線で結びます。`n-1`本の直線が得られます。 +- 各直線上において、距離が`t`となる点にそれぞれ印をつけます。 +- `それらの`点同士を直線で結びます。`n-2`本の直線が得られます。 +- 印をつけ、直線で結び、印をつけ、…… +- 1本の直線になるまで繰り返します。その直線上の`t`の点は、元の曲線上で`t`となる点に一致しています。 + +