• ベストアンサー

Βスプライン曲線とベジェ曲線について

hiiniichanの回答

回答No.1

合ってるかどうかは?ですが… 【Bスプライン】 始点:P1(X1,Y1) 終点:P3(X3,Y3) 制御点:P2(X2,Y2) 二次曲線を媒介変数(t)を用いて次のように表すことにする X=F(t)=Ax・t^2 + Bx・t + Cx Y=G(t)=Ay・t^2 + By・t + Cy (0≦t≦1) t=0のとき(F(t), G(t)) = P1(X1, Y1) となるためには Cx = X1  Cy = Y1 t=1のとき(F(t), G(t)) = P3(X3, Y3) となるためには Ax + Bx + X1 = X3 → Ax + Bx = X3 - X1 Ay + By + Y1 = Y3 → Ay + By = Y3 - Y1 t=0のとき曲線が線分P1-P2とP1において接するためには F'(t)=2・Ax・t + Bx  G'(t)=2・Ay・t + By F'(0) : G'(0) = Bx : By = X2 - X1 : Y2 - Y1 となっていなければならない。 係数nを導入して次のように置くことにする F'(0) = Bx = n・(X2 - X1) G'(0) = By = n・(Y2 - Y1) またt=1のとき曲線が線分P2-P3とP3において接するためには F'(1) : G'(1) = 2・Ax + Bx : 2・Ay + By = X3 - X2 : Y3 - Y2 となっていなければならない。 係数kを導入して次のように置くことにする F'(1) = 2・Ax + Bx = k・(X3 - X2) G'(1) = 2・Ay + By = k・(Y3 - Y2) これを解いていくと Ax = {k・(X3 - X2) - n・(X2 - X1)}/2 Bx = n・(X2 - X1) Cx = X1 (以下Ay,By,Cyについては同型なので省略する) これを元の式 F(t)=Ax・t^2 + Bx・t + Cx に代入し X1, X2, X3 についてまとめると、 F(t)={k・(X3 - X2) - n・(X2 - X1)}/2・t^2 + n・(X2 - X1)・t + X1  =(n/2・t^2 - n・t + 1)・X1 - {(k+n)/2・t^2 - n・t}・X2 + k/2・X3・t^2 P1とP3が逆になったときでもこの曲線が同じ軌跡を描くためには。 H(t)=(n/2・t^2 - n・t + 1)・X3 - {(k+n)/2・t^2 - n・t}・X2 + k/2・X1・t^2 において H(1) = (n/2 - n + 1)・X3 - {(k+n)/2 - n}・X2 + k/2・X1  = (1 - n/2)・X3 - {(k-n)/2}・X2 + k/2・X1 = F(0) = X1 が常に成り立たねばならないことから n=k=2 F(t)={k・(X3 - X2) - n・(X2 - X1)}/2・t^2 + n・(X2 - X1)・t + X1  =(t^2 - 2・t + 1)・X1 - {2・t^2 - 2・t}・X2 + X3・t^2  =(t-1)^2・X1 + 2・(1-t)・t・X2 + X3・t^2 同様に G(t)=(t-1)^2・Y1 + 2・(1-t)・t・Y2 + Y3・t^2 ふぅ…疲れた...(o_ _)oバタッ

hirohiro8888
質問者

お礼

回答ありがとうございます。 長文で書いていただき、大変恐縮しています。

関連するQ&A

  • スプライン曲線について

    2次のBスプライン曲線は x=(1-t)**2*x1+2*t*(1-t)*x2+t**2*x3 y=(1-t)**2*y1+2*t*(1-t)*y2+t**2*y3 で表わせるらしいのですがどのようにしたら求められるのでしょうか?教えてください.

  • ベジェ曲線について

    3次ベジェ曲線において 4つの制御点がp1ベクトル(0,0),p1ベクトル(1,1),p1ベクトル(1,2),p1ベクトル(0,3)であるとき、t=2/3の三次ベジェ曲線上の点の位置pベクトル(2/3)を計算により求めるとx座標とy座標の値は何になりますか? 分かる人いたら教えてください。 (1-t)^3+3t(1-t)^2+3t^2*(1-t)+t^3に2/3を代入して(2/3,2)ではダメなんでしょうか? また制御点を結ぶ直線の中点から曲線を2本のベジェ曲線に分割する作成図を利用して、この三次ベジェ曲線のおおよその形状をしるのはどうしたらいいのでしょうか??

  • ベジェ曲線について

    http://joe.ash.jp/etc/cg/bezie01.htm のページを見ながらベジェ曲線について勉強しているのですが 3次のベジェ曲線の式でP0,P1,P2,P3と書かれていますがこれはxの場合と、y の場合それぞれ分けて考えないといけないのでしょうか?? この式で座標が求まると考えていいのでしょうか??

  • 3次のB-スプライン曲線について

    B-スプラインの2次の数式は 0 <= t <= 1 x=(1-t)^2×x1+2t(1-t)×x2+t^2×x3 y=(1-t)^2×y1+2t(1-t)×y2+t^2×y3 だと分かるのですが、これが3次の数式になるとどうなるのでしょうか?

  • ベジェ曲線のオフセット曲線

    以下の外側と内側のオフセット曲線の式がわかりません。 オフセット曲線との距離は1です。 1.制御点(4,10),(10,10),(10,5)の2次ベジェ 2.r(t)=(10-5t^2 , 5-10t+5t^2)の曲線 ^記号は↑5×tの2乗↑の意味 ご指導をお願いします。 回答が早ければ非常に助かります。

  • ベジェ曲線(3次関数)の長さ

    ベジェ曲線(3次関数)の長さを求めようと思っています。 p,q,r,sを位置ベクトルとする。 ベジェ曲線(p-q-r-s)の位置ベクトルbは b=p+t(-3p+3q+t(3p-6q+3r+t(-p+3q-3r+s))) (定義域0≦t≦1) 例えば4点(10,20)-(20,40)-(80,10)-(50,80)で表現されるベジェ曲線は bx=-140(t^3)+150(t^2)+30t+10 bx=150(t^3)-150(t^2)+60t+20 となります この曲線の長さを求める式を教えてください。

  • 曲線

    分からない問題があるのですが、f(x,y)=x^3+y^3-3xy (x, y∈R) のとき、方程式f(x、y)=0が定める平面曲線Cで 1) 直線y = tx とC との交点を考え,C のパラメータt による表示を与 えよ. 2) 曲線Cのうち,パラメータ0 ≦ t < 1 に対応する部分で囲まれた領域(C の補 集合の有界連結成分) の面積を求めよ. というものが分かりません。どなたか回答お願いします。

  • VB2010で曲線の書き方。

    VB2010でPictureBoxの中に2点を結ぶ曲線を書きたいのですが、どのようにしたらかけるのか教えていただきたいです。 (例) (0,-1)、(1,0)の2点を結ぶ y=3x^3-2x-1のという3次曲線を書く。 直線までならGraphicクラスを用いて、g.drawlineを使う、複数点を通るスプライン曲線を書くならg.drawcurveなどどいうメソッドがあるのですが、このような3次式や2次式の線は書けないのでしょうか?解答よろしくお願いします。

  • 射影平面の曲線(射影幾何学?)

    射影平面Pにおいてその上の曲線Cの定義とは、同次多項式F(x,y,z)を用いてF(x,y,z)=0の解集合ですが、確かに同次多項式ならば(x,y,z)がその解ならば任意のt≠0について同次座標(tx,ty,tz)も解になります。 しかし非同次多項式fで、解のどの同次座標もf=0の解になるようなものは本当にないのでしょうか? つまり言い換えると(非同次多項式)=0なる方程式の解集合は射影平面の曲線になり得ないのでしょうか?

  • スプライン補間

    スプライン補間 空間座標において,各点の座標( x(t),y(t),z(t) ) ( t:時間 )と速度ベクトル( u(t),v(t),w(t) )( u,v,w,はそれぞれx,y,z軸方向の速さ )がわかっている時,スプライン補間して各点の間の座標を知りたいのですが,スプライン補間には複数のスプライン関数があるようでどれを用いるのがベストなのかがわかりません.各関数の特徴,使用条件などを教えていただきたいです,