Upload
mitsuru-muramatsu
View
2.674
Download
2
Embed Size (px)
DESCRIPTION
慶應義塾大学SFC大学院授業「デザインセオリー」第10回の講義資料です
Citation preview
Design Theory
村松 充政策・メディア研究科 後期博士課程3年目X-Design Program 山中デザイン研究室
第10回 2012 6/20
Lecture Theme
CAXD -Computer Aided X-Design-
■3DCG基礎 ー3次元表現のための数学基礎■滑らかな形の科学 ー3D CAD による形状表現■自然、物理学と形■コンピューターによるX-Design ー動きのデザイン、シミュレーション ーアルゴリズムによる形状生成
Lecture Theme
CAXD -Computer Aided X-Design-
■3DCG基礎 ー3次元表現のための数学基礎■滑らかな形の科学 ー3D CAD による形状表現■自然、物理学と形■コンピューターによるX-Design ー動きのデザイン、シミュレーション ーアルゴリズムによる形状生成
Lecture 3
CADによる曲線表現CADにおいて、滑らかな曲線を描くために用いられる曲線の表現形式を学ぶ
Computer Aided Design
Bezier Curve
Adobe Illustrator等で用いられている曲線表現n次のBezier曲線は以下の式で表される(制御点は、P0, P1... Pn)
Computer Aided Design
Bezier Curve
3次のベジェ曲線の式を展開すると
tでまとめると
Computer Aided Design
Bezier Curve
3次のベジェ曲線をtについて整理すると
Computer Aided Design
微分する(A,B,C,Dは定数とみなせる)一階微分
二階微分
Bezier Curve
Computer Aided Design
Bezier Curve
3次のベジェ曲線3次のベジェ曲線は、曲線上すべての点で曲率が連続している。(G2連続である)
n次のベジェ曲線n次のベジェ曲線は、曲線上すべての点でG(n-1)連続になる。(展開するとtのn次方程式になる)
Computer Aided Design
Bezier Curve
ベジェ曲線で複雑な曲線を表現するには?
Computer Aided Design
Bezier Curve
方法1:次数を上げるベジェ曲線で複雑な曲線を表現するには?
Computer Aided Design
Bezier Curve
次数を上げるhttp://www.openprocessing.org/sketch/64329
Computer Aided Design
Bezier Curve
方法2:複数の曲線で表現するベジェ曲線で複雑な曲線を表現するには?
Computer Aided Design
Bezier Curve
方法2:複数の曲線で表現するベジェ曲線で複雑な曲線を表現するには?
ベジェ曲線を複数連続した場合接続部分の連続性はどうなるか?
Computer Aided Design
Bezier Curve
ベジェ曲線の接続 -3次のBezier曲線同士の接続-
PA0
PA1
PA2
PA3PB0
PB1
PB2
PB3
PA3 = PB0
であれば、位置連続(C0連続)(曲線は接続されている)
Computer Aided Design
Bezier Curve
ベジェ曲線の接続 -3次のBezier曲線同士の接続-接線連続で接続する条件Ba(1)と Bb(0) での接線(微分)が等しければ、2曲線は接線連続になる。
Computer Aided Design
Bezier Curve
ベジェ曲線の接続 -3次のBezier曲線同士の接続-接線連続で接続する条件
Computer Aided Design
Bezier Curve
ベジェ曲線の接続 -3次のBezier曲線同士の接続-接線連続で接続する条件
PA3 - PA2
PB1 - PB0
PA2からPA3へのベクトル PA0からPA1へのベクトル
ベクトルの大きさが等しい場合C0連続ベクトルの向きのみが等しい場合G0連続
Computer Aided Design
Bezier Curve
http://www.openprocessing.org/sketch/64334
ベジェ曲線の接続連続性の確認
Computer Aided Design
Bezier Curve
3次のベジェ曲線の接続曲率連続で接続する条件Ba(1)と Bb(0) での曲率(二階微分)が等しければ、2曲線は曲率連続になる。
Computer Aided Design
Bezier Curve
3次のベジェ曲線の接続曲率連続で接続する条件
Computer Aided Design
Bezier Curve
3次のベジェ曲線の接続曲率連続で接続する条件
Computer Aided Design
Bezier Curve
3次のベジェ曲線の接続曲率連続で接続する条件
PA3 - PA2
PB1 - PB0
PA1 - PA2
PB2 - PB1
Computer Aided Design
Bezier Curve
http://www.openprocessing.org/sketch/64335
ベジェ曲線の曲率連続性の確認
Computer Aided Design
Bezier Curve
3次のベジェ曲線の接続
3次のベジェ曲線を接線連続性を確保したうえで曲率連続で接続しようとすると
制御点操作の自由度が低くなり自由な曲線を描くことが出来ない。
Computer Aided Design
B-Spline
ベジェ曲線よりも曲線同士の接続の連続性の確保がしやすい曲線の表現方法
B-スプライン曲線
Computer Aided Design
B-Spline
B-スプライン曲線
Computer Aided Design
B-Spline
B-スプライン曲線式を展開してみましょう。m:ノットの数 6つn:次数 2次
t = [0,1,2,3,4,5]ノットベクトル
Computer Aided Design
B-Spline
B-スプライン曲線
m:ノットの数 6つn:次数 2次t = [0,1,2,3,4,5]
Computer Aided Design
B-Spline
B-スプライン曲線
m:ノットの数 6つn:次数 2次制御点の数 3つt = [0,1,2,3,4,5]
Computer Aided Design
B-Spline
bi,2
bi,1
bi+1,1
bi,0
bi+1,0
bi+1,0
bi+2,0
t - ti
ti+2 - ti
ti+3 - t
ti+3 - ti+1
t - ti
ti+1 - ti
ti+2 - tti+2 - ti+1
t - ti+1
ti+2 - ti+1
ti+3 - tti+3 - ti+2
t = [0,1,2,3,4,5]ノットは1ずつ単純増加
Computer Aided Design
B-Spline
bi,2
bi,1
bi+1,1
bi,0
bi+1,0
bi+1,0
bi+2,0
t - ti
2
ti+3 - t
2
t - ti
ti+2 - t
t - ti+1
ti+3 - t
Computer Aided Design
B-Spline
b0,2
bi,1
bi+1,1
b0,0
b1,0
b1,0
b2,0
t
2
3 - t
2
t
2 - t
t - 1
3 - t
i=0のとき
Computer Aided Design
B-Spline
b0,2
bi,1
bi+1,1
b0,0
b1,0
b1,0
b2,0
t
2
3 - t
2
t
2 - t
t - 1
3 - t
i=0 0≦t<1のとき t
2
2
Computer Aided Design
B-Spline
b0,2
bi,1
bi+1,1
b0,0
b1,0
b1,0
b2,0
t
2
3 - t
2
t
2 - t
t - 1
3 - t
i=0 1≦t<2のとき
3
2-t 2 + 3t -
Computer Aided Design
B-Spline
b0,2
bi,1
bi+1,1
b0,0
b1,0
b1,0
b2,0
t
2
3 - t
2
t
2 - t
t - 1
3 - t
i=0 2≦t<3のとき
t
2
2 - 6t + 9
Computer Aided Design
B-Spline
i=0 のとき
Computer Aided Design
B-Spline
i=0 のとき
0 0.5 1 1.5 2 2.5 3
0.5
1
Computer Aided Design
B-Spline
i=0,...,2 のとき
* *
*
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0.25
0.5
0.75
1
t = [0,1,2,3,4,5]
P0 P1 P2
Computer Aided Design
B-Spline
制御点3点の2次B-splineをプログラムで確認http://www.openprocessing.org/sketch/64341
Computer Aided Design
B-Spline
制御点を増やしてみる
m:ノットの数 7つn:次数 2次制御点の数 4つt = [0,1,2,3,4,5,6]
Computer Aided Design
B-Spline
i=0,...,3 のとき t = [0,1,2,3,4,5,6]
0 0.4 0.8 1.2 1.6 2 2.4 2.8 3.2 3.6 4 4.4 4.8 5.2 5.6 6
0.25
0.5
0.75
1
P0 P1 P2 P3
Computer Aided Design
B-Spline
制御点4点の2次B-splineをプログラムで確認http://www.openprocessing.org/sketch/64342
Computer Aided Design
Bezier
ちなみに、2次のベジェ曲線は
0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25
-0.25
0.25
0.5
0.75
1
P0
P1
P2
P3
P4
Computer Aided Design
Cubic B-Spline
3次のB-スプライン曲線を考えてみる
Computer Aided Design
Cubic B-Splinebi,2
bi,1
bi+1,1
bi,0
bi+1,0
bi+1,0
bi+2,0
t - ti
ti+2 - ti
ti+3 - tti+3 - ti+1
t - ti
ti+1 - ti
ti+2 - tti+2 - ti+1
t - ti+1
ti+2 - ti+1
ti+3 - tti+3 - ti+2
t - ti
ti+3 - t
ti+4 - tti+4 - ti+1
bi+1,2
bi+1,1
bi+2,1
bi+1,0
bi+2,0
bi+2,0
bi+3,0
t - ti+1
ti+3 - ti+1
ti+4 - tti+4 - ti+2
t - ti
ti+2 - ti
ti+3 - tti+3 - ti+2
t - ti+2
ti+3 - ti+2
ti+4 - tti+4 - ti+3
bi,3
Computer Aided Design
i=0 のときCubic B-Spline
Computer Aided Design
0 0.5 1 1.5 2 2.5 3 3.5 4
0.25
0.5
0.75
1
Cubic B-Spline
Computer Aided Design
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7
0.25
0.5
0.75
1
P0 P1 P2 P3
t = [0,1,2,3,4,5,6,7]Cubic B-Spline
0 0.8 1.6 2.4 3.2 4 4.8 5.6 6.4 7.2 8
0.25
0.5
0.75
1
Computer Aided Design
P0 P1 P2 P3
t = [0,1,2,3,4,5,6,7,8]
P4
Cubic B-Spline
0 0.25 0.5 0.75 1 1.25 1.5 1.75 2
0.25
0.5
0.75
1
Computer Aided Design
Cubic Bezier
P0
P1 P2
P3
P4 P5
P6
Computer Aided Design
B-Spline
n次(n=1~6)のB-Splineをプログラムで確認http://www.openprocessing.org/sketch/64344
Computer Aided Design
B-Spline
n次のB-splineは、セグメントの接続点(ノット)でCn-1連続性を持つ
3次以上のB-splineを用いれば、曲率連続の自由曲線を描くことが出来る
Computer Aided Design
B-Spline
しかし、B-splineは制御点を通らないため扱いにくい端点を指定出来た方がCADにおいて扱いやすい
Computer Aided Design
B-Spline
非一様Bスプライン曲線
ノットベクトルを非一様に増加する値にし、ノットを多重化させる事で制御点から始まる曲線や制御点を通る曲線、制御点で折れる線等の指定を可能にした曲線の表現形式
Computer Aided Design
B-Spline
非一様Bスプライン曲線
n次のB-Splineの場合、n+1個ノットを重ねればセグメントの端点を制御点に一致させることが出来る
2次の場合、t=[0,0,0,1,2,3,4,5,5,5]など。3次の場合、t=[0,0,0,0,1,2,3,4,4,4,4]など。
Computer Aided Design
B-Spline
n次(n=1~6)の始点と終点にノットを重ねた非一様なB-Splineをプログラムで確認http://www.openprocessing.org/sketch/64345
Computer Aided Design
B-Spline
CADソフトウェア上で曲線の連続性を確認
Computer Aided Design
B-Spline
両端を多重ノットにした1セグメントのBスプライン曲線とベジェ曲線の比較http://www.openprocessing.org/sketch/64347
Computer Aided Design
B-Spline
両端を多重ノットにした1セグメントのBスプライン曲線は、同じ次数のベジェ曲線と等しい
ex) ノットベクトル=[0,0,0,0,1,2,3,3,3,3]の3次B-Splineは、3次Bezier曲線と等しい
Computer Aided Design
B-Spline
多重ノットにした端点は最初の制御点と一致するが、その点において他のB-Spline曲線と接続しても連続性は保証されない。(Bezierと同様)
連続性を保って接続したい場合は注意が必要
Computer Aided Design
NURBS
非一様有理Bスプライン曲線(NURBS)
Computer Aided Design
NURBS
非一様有理Bスプライン曲線(NURBS)
各制御点に重みを与えて、制御点毎に影響の強さを変える→1制御点レベルでの細かい調整が可能になる
Computer Aided Design
NURBS
非一様有理Bスプライン曲線(NURBS)
* *
*
Computer Aided Design
NURBS
非一様有理Bスプライン曲線(NURBS)
有理曲線ではないベジェ曲線、B-Splineでは厳密な円弧を描画することが出来ない
円弧等の円錐曲線を数学的に正しく描画するために有理曲線が使われる
Computer Aided Design
NURBS
NURBSをプログラムで確認http://www.openprocessing.org/sketch/64350