diff --git a/components/sections/splitting/content.ja-JP.md b/components/sections/splitting/content.ja-JP.md new file mode 100644 index 00000000..624f3ca5 --- /dev/null +++ b/components/sections/splitting/content.ja-JP.md @@ -0,0 +1,38 @@ +# 曲線の分割 + +ベジエ曲線を分割して、繫ぎ合わせたときに元に戻るような小さい2曲線にしたい場合にも、ド・カステリョのアルゴリズムを使えば、これに必要な点をすべて求めることができます。ある値`t`に対してド・カステリョの骨格を組み立てると、その`t`で曲線を分割する際に必要になる点がすべて得られます。骨格内部の点のうち、曲線上の点から見て手前側にある点によって一方の曲線が定義され、向こう側にある点によってもう一方の曲線が定義されます。 + + + +
+ +### 曲線分割の実装方法 + +ド・カステリョの関数の中に記録する処理を追加すれば、曲線の分割が実装できます。 + +``` +left=[] +right=[] +function drawCurve(points[], t): + if(points.length==1): + left.add(points[0]) + right.add(points[0]) + draw(points[0]) + else: + newpoints=array(points.size-1) + for(i=0; i + +これはアニメーションで見るのがわかりやすいでしょう(クリックで再生・停止します)。 + +