0

二次ベジエ曲線の長さを求める

79
0

 二次ベジエ曲線の長さを求めます。これは積分で求めることができます。応用は特に考えていません。興味があって調べました。
quadraticCurveLength

二次ベジエ曲線 二次ベジエ曲線

 まず、二次ベジエ曲線とは3つのコントロールポイント:

(a0,b0,c0),  (a1,b1,c1),  (a2,b2,c2)
により、次のように表される曲線である:

x=a0(1t)2+2a1t(1t)+a2t2,y=b0(1t)2+2b1t(1t)+b2t2,z=c0(1t)2+2c1t(1t)+c2t2.
ただし t0tt1 とする。曲線の長さを与える式を求める。
 はじめに、

u0=a0a1,   v0=b0b1,   w0=c0c1
とおく。さらに、

u1=a02a1+a2,  v1=b02b1+b2,  w1=c02c1+c2
とおく。そして、

A=u12+v12+w12,
B=u1u0+v1v0+w1w0,
C=u02+v02+w02,
D=ACB2
とおく。シュワルツの不等式より、 D0 がわかる。
 このとき、求める曲線の長さは次のようになる。まず補助関数を用意する。

g(x)=log(x+x2+1)+xx2+1.
曲線の長さ L は、まず A>0 かつ D>0 のとき、

L=DAA(g(At1BD)g(At0BD)).
次に A>0 かつ D=0 の場合は、

L=1AA((At1B)|At1B|(At0B)|At0B|).
最後に A=0 の場合、 B  D も0になるので、

L=2C(t1t0)
となる。
 以上です。

投稿日:2023710
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

黒狐
黒狐
34
5129
数学ちょっと好きです!

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中