Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Design Theory第10回 2012 6/20                                      村松 充                 政策・メディア研究科 後期博士課程3年目                ...
Lecture Theme        CAXD    -Computer Aided X-Design-            ■3DCG基礎             ー3次元表現のための数学基礎            ■滑らかな形の科学 ...
Lecture Theme        CAXD    -Computer Aided X-Design-            ■3DCG基礎             ー3次元表現のための数学基礎            ■滑らかな形の科学 ...
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 Bezier Curve  微分する(A,B,C,Dは定数とみなせる)  一階微分  二階微分
Computer Aided Design Bezier Curve    3次のベジェ曲線     3次のベジェ曲線は、曲線上すべての点で曲率     が連続している。(G2連続である)    n次のベジェ曲線     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曲線同士の接続-                               PA1                        ...
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曲線同士の接続-  接線連続で接続する条件                                             ...
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次のベジェ曲線の接続     曲率連続で接続する条件                                    PB1 - PB0            ...
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...
Computer Aided Design B-Spline    B-スプライン曲線                        m:ノットの数 6つ                        n:次数     2次          ...
Computer Aided Design   m:ノットの数 6つ B-Spline               n:次数     2次    B-スプライン曲線           制御点の数   3つ                   ...
Computer Aided Design               t = [0,1,2,3,4,5] B-Spline                           ノットは1ずつ単純増加                      ...
Computer Aided Design B-Spline                                t - ti bi,0              t - ti                     bi,1    ...
Computer Aided Design B-Spline  i=0のとき                                 t     b0,0               t                    bi,1 ...
Computer Aided Design B-Spline  i=0 0 t<1のとき                                t2                                 t     b0,0 ...
Computer Aided Design B-Spline  i=0 1 t<2のとき                                 t     b0,0               t                   ...
Computer Aided Design B-Spline  i=0 2 t<3のとき                                 t     b0,0               t                   ...
Computer Aided Design B-Spline  i=0 のとき
Computer Aided Design B-Spline  i=0 のとき                        1                        0.5                        0     0...
Computer Aided Design B-Spline  i=0,...,2 のとき                                                           t = [0,1,2,3,4,5] ...
Computer Aided Design B-Spline    制御点3点の2次B-splineをプログラムで確認     http://www.openprocessing.org/sketch/64341
Computer Aided Design   m:ノットの数 7つ B-Spline               n:次数     2次    制御点を増やしてみる          制御点の数   4つ                   ...
Computer Aided Design B-Spline  i=0,...,3 のとき                                                                t = [0,1,2,3,...
Computer Aided Design B-Spline    制御点4点の2次B-splineをプログラムで確認     http://www.openprocessing.org/sketch/64342
Computer Aided Design Bezier  ちなみに、2次のベジェ曲線は               1                      P0                       P2             ...
Computer Aided Design Cubic B-Spline    3次のB-スプライン曲線を考えてみる
t - ti                                                               ti+1 - ti bi,0Computer Aided Design                  ...
Computer Aided Design Cubic B-Spline  i=0 のとき
Computer Aided Design Cubic B-Spline     1    0.75     0.5    0.25     0     0.5   1      1.5   2   2.5   3   3.5   4
Computer Aided Design Cubic B-Spline                                       t = [0,1,2,3,4,5,6,7]     1    0.75            ...
Computer Aided Design Cubic B-Spline                              t = [0,1,2,3,4,5,6,7,8]    1                      P0    ...
Computer Aided Design Cubic Bezier      1                                               P3                                ...
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...
Computer Aided Design B-Spline    n次(n=1∼6)の始点と終点にノットを重ねた    非一様なB-Splineをプログラムで確認     http://www.openprocessing.org/sketc...
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-...
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
Upcoming SlideShare
Loading in …5
×

SFC Design theory 2012 6/20

6,246 views

Published on

慶應義塾大学SFC大学院授業「デザインセオリー」第10回の講義資料です

SFC Design theory 2012 6/20

  1. 1. Design Theory第10回 2012 6/20 村松 充 政策・メディア研究科 後期博士課程3年目 X-Design Program 山中デザイン研究室
  2. 2. Lecture Theme CAXD -Computer Aided X-Design- ■3DCG基礎  ー3次元表現のための数学基礎 ■滑らかな形の科学  ー3D CAD による形状表現 ■自然、物理学と形 ■コンピューターによるX-Design  ー動きのデザイン、シミュレーション  ーアルゴリズムによる形状生成
  3. 3. Lecture Theme CAXD -Computer Aided X-Design- ■3DCG基礎  ー3次元表現のための数学基礎 ■滑らかな形の科学  ー3D CAD による形状表現 ■自然、物理学と形 ■コンピューターによるX-Design  ー動きのデザイン、シミュレーション  ーアルゴリズムによる形状生成
  4. 4. Lecture 3 CADによる曲線表現 CADにおいて、滑らかな曲線を描くために用いられる 曲線の表現形式を学ぶ
  5. 5. Computer Aided Design Bezier Curve Adobe Illustrator等で用いられている曲線表現 n次のBezier曲線は以下の式で表される (制御点は、P0, P1... Pn)
  6. 6. Computer Aided Design Bezier Curve 3次のベジェ曲線の式を展開すると tでまとめると
  7. 7. Computer Aided Design Bezier Curve 3次のベジェ曲線をtについて整理すると
  8. 8. Computer Aided Design Bezier Curve 微分する(A,B,C,Dは定数とみなせる) 一階微分 二階微分
  9. 9. Computer Aided Design Bezier Curve 3次のベジェ曲線 3次のベジェ曲線は、曲線上すべての点で曲率 が連続している。(G2連続である) n次のベジェ曲線 n次のベジェ曲線は、曲線上すべての点でG(n-1) 連続になる。 (展開するとtのn次方程式になる)
  10. 10. Computer Aided Design Bezier Curve ベジェ曲線で複雑な曲線を表現するには?
  11. 11. Computer Aided Design Bezier Curve ベジェ曲線で複雑な曲線を表現するには? 方法1:次数を上げる
  12. 12. Computer Aided Design Bezier Curve 次数を上げる http://www.openprocessing.org/sketch/64329
  13. 13. Computer Aided Design Bezier Curve ベジェ曲線で複雑な曲線を表現するには? 方法2:複数の曲線で表現する
  14. 14. Computer Aided Design Bezier Curve ベジェ曲線で複雑な曲線を表現するには? 方法2:複数の曲線で表現する ベジェ曲線を複数連続した場合 接続部分の連続性はどうなるか?
  15. 15. Computer Aided Design Bezier Curve ベジェ曲線の接続 -3次のBezier曲線同士の接続- PA1 PA2 PA0 PB0 PA3 PA3 = PB0 であれば、位置連続(C0連続) (曲線は接続されている) PB2 PB1 PB3
  16. 16. Computer Aided Design Bezier Curve ベジェ曲線の接続 -3次のBezier曲線同士の接続- 接線連続で接続する条件 Ba(1)と Bb(0) での接線(微分)が等しければ、 2曲線は接線連続になる。
  17. 17. Computer Aided Design Bezier Curve ベジェ曲線の接続 -3次のBezier曲線同士の接続- 接線連続で接続する条件
  18. 18. Computer Aided Design Bezier Curve ベジェ曲線の接続 -3次のBezier曲線同士の接続- 接線連続で接続する条件 PA3 - PA2 PA2からPA3へのベクトル PA0からPA1へのベクトル ベクトルの大きさが等しい場合C0連続 ベクトルの向きのみが等しい場合G0連続 PB1 - PB0
  19. 19. Computer Aided Design Bezier Curve ベジェ曲線の接続連続性の確認 http://www.openprocessing.org/sketch/64334
  20. 20. Computer Aided Design Bezier Curve 3次のベジェ曲線の接続 曲率連続で接続する条件 Ba(1)と Bb(0) での曲率(二階微分)が等しければ、 2曲線は曲率連続になる。
  21. 21. Computer Aided Design Bezier Curve 3次のベジェ曲線の接続 曲率連続で接続する条件
  22. 22. Computer Aided Design Bezier Curve 3次のベジェ曲線の接続 曲率連続で接続する条件
  23. 23. Computer Aided Design Bezier Curve 3次のベジェ曲線の接続 曲率連続で接続する条件 PB1 - PB0 PA3 - PA2 PB2 - PB1 PA1 - PA2
  24. 24. Computer Aided Design Bezier Curve ベジェ曲線の曲率連続性の確認 http://www.openprocessing.org/sketch/64335
  25. 25. Computer Aided Design Bezier Curve 3次のベジェ曲線の接続 3次のベジェ曲線を接線連続性を確保したうえで 曲率連続で接続しようとすると 制御点操作の自由度が低くなり 自由な曲線を描くことが出来ない。
  26. 26. Computer Aided Design B-Spline B-スプライン曲線 ベジェ曲線よりも曲線同士の接続の連続性 の確保がしやすい曲線の表現方法
  27. 27. Computer Aided Design B-Spline B-スプライン曲線
  28. 28. Computer Aided Design B-Spline B-スプライン曲線 式を展開してみましょう。 m:ノットの数 6つ n:次数     2次 ノットベクトル t = [0,1,2,3,4,5]
  29. 29. Computer Aided Design B-Spline B-スプライン曲線 m:ノットの数 6つ n:次数     2次 t = [0,1,2,3,4,5]
  30. 30. Computer Aided Design m:ノットの数 6つ B-Spline n:次数     2次 B-スプライン曲線 制御点の数   3つ t = [0,1,2,3,4,5]
  31. 31. Computer Aided Design t = [0,1,2,3,4,5] B-Spline ノットは1ずつ単純増加 t - ti ti+1 - ti bi,0 t - ti bi,1 ti+2 - ti ti+2 - t bi+1,0 ti+2 - ti+1 bi,2 t - ti+1 ti+2 - ti+1 bi+1,0 ti+3 - t bi+1,1 ti+3 - ti+1 ti+3 - t bi+2,0 ti+3 - ti+2
  32. 32. Computer Aided Design B-Spline t - ti bi,0 t - ti bi,1 2 ti+2 - t bi+1,0 bi,2 t - ti+1 bi+1,0 ti+3 - t bi+1,1 2 ti+3 - t bi+2,0
  33. 33. Computer Aided Design B-Spline i=0のとき t b0,0 t bi,1 2 2-t b1,0 b0,2 t - 1 b1,0 3-t bi+1,1 2 3 - t b2,0
  34. 34. Computer Aided Design B-Spline i=0 0 t<1のとき t2 t b0,0 t 2 bi,1 2 2-t b1,0 b0,2 t - 1 b1,0 3-t bi+1,1 2 3 - t b2,0
  35. 35. Computer Aided Design B-Spline i=0 1 t<2のとき t b0,0 t bi,1 2 2-t b1,0 2 3 b0,2 -t + 3t - 2 t - 1 b1,0 3-t bi+1,1 2 3 - t b2,0
  36. 36. Computer Aided Design B-Spline i=0 2 t<3のとき t b0,0 t bi,1 2 2-t b1,0 b0,2 t - 1 b1,0 3-t bi+1,1 t 2 - 6t + 9 2 3 - t b2,0 2
  37. 37. Computer Aided Design B-Spline i=0 のとき
  38. 38. Computer Aided Design B-Spline i=0 のとき 1 0.5 0 0.5 1 1.5 2 2.5 3
  39. 39. Computer Aided Design B-Spline i=0,...,2 のとき t = [0,1,2,3,4,5] 1 0.75 P0 P1 P2 0.5 * * * 0.25 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
  40. 40. Computer Aided Design B-Spline 制御点3点の2次B-splineをプログラムで確認 http://www.openprocessing.org/sketch/64341
  41. 41. Computer Aided Design m:ノットの数 7つ B-Spline n:次数     2次 制御点を増やしてみる 制御点の数   4つ t = [0,1,2,3,4,5,6]
  42. 42. Computer Aided Design B-Spline i=0,...,3 のとき t = [0,1,2,3,4,5,6] 1 0.75 P0 P1 P2 P3 0.5 0.25 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
  43. 43. Computer Aided Design B-Spline 制御点4点の2次B-splineをプログラムで確認 http://www.openprocessing.org/sketch/64342
  44. 44. Computer Aided Design Bezier ちなみに、2次のベジェ曲線は 1 P0 P2 P4 0.75 0.5 P1 P3 0.25 0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 -0.25
  45. 45. Computer Aided Design Cubic B-Spline 3次のB-スプライン曲線を考えてみる
  46. 46. t - ti ti+1 - ti bi,0Computer Aided Design t - ti bi,1 ti+2 - ti ti+2 - t bi+1,0 Cubic B-Spline ti+2 - ti+1 t - ti bi,2 ti+3 - t t - ti+1 ti+2 - ti+1 bi+1,0 ti+3 - t bi+1,1 ti+3 - ti+1 ti+3 - t ti+3 - ti+2 bi+2,0 bi,3 t - ti ti+2 - ti bi+1,0 t - ti+1 bi+1,1 ti+3 - ti+1 ti+3 - t bi+2,0 ti+3 - ti+2 ti+4 - t bi+1,2 ti+4 - ti+1 t - ti+2 ti+3 - ti+2 bi+2,0 ti+4 - t bi+2,1 ti+4 - ti+2 ti+4 - t ti+4 - ti+3 bi+3,0
  47. 47. Computer Aided Design Cubic B-Spline i=0 のとき
  48. 48. Computer Aided Design Cubic B-Spline 1 0.75 0.5 0.25 0 0.5 1 1.5 2 2.5 3 3.5 4
  49. 49. Computer Aided Design Cubic B-Spline t = [0,1,2,3,4,5,6,7] 1 0.75 P0 P1 P2 P3 0.5 0.25 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7
  50. 50. Computer Aided Design Cubic B-Spline t = [0,1,2,3,4,5,6,7,8] 1 P0 P1 P2 P3 P4 0.75 0.5 0.25 0 0.8 1.6 2.4 3.2 4 4.8 5.6 6.4 7.2 8
  51. 51. Computer Aided Design Cubic Bezier 1 P3 P6 0.75 P0 0.5 P1 P2 P4 P5 0.25 0 0.25 0.5 0.75 1 1.25 1.5 1.75 2
  52. 52. Computer Aided Design B-Spline n次(n=1∼6)のB-Splineをプログラムで確認 http://www.openprocessing.org/sketch/64344
  53. 53. Computer Aided Design B-Spline n次のB-splineは、セグメントの接続点(ノット)で Cn-1連続性を持つ 3次以上のB-splineを用いれば、曲率連続の自由曲線 を描くことが出来る
  54. 54. Computer Aided Design B-Spline しかし、B-splineは制御点を通らないため扱いにくい 端点を指定出来た方がCADにおいて扱いやすい
  55. 55. Computer Aided Design B-Spline 非一様Bスプライン曲線 ノットベクトルを非一様に増加する値にし、 ノットを多重化させる事で制御点から始まる曲線や 制御点を通る曲線、制御点で折れる線等の指定を 可能にした曲線の表現形式
  56. 56. 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]など。
  57. 57. Computer Aided Design B-Spline n次(n=1∼6)の始点と終点にノットを重ねた 非一様なB-Splineをプログラムで確認 http://www.openprocessing.org/sketch/64345
  58. 58. Computer Aided Design B-Spline CADソフトウェア上で曲線の連続性を確認
  59. 59. Computer Aided Design B-Spline 両端を多重ノットにした1セグメントのBスプライン曲線と ベジェ曲線の比較 http://www.openprocessing.org/sketch/64347
  60. 60. Computer Aided Design B-Spline 両端を多重ノットにした1セグメントのBスプライン曲線は、 同じ次数のベジェ曲線と等しい ex) ノットベクトル=[0,0,0,0,1,2,3,3,3,3]の3次B-Spline は、3次Bezier曲線と等しい
  61. 61. Computer Aided Design B-Spline 多重ノットにした端点は最初の制御点と一致するが、 その点において他のB-Spline曲線と接続しても連続性は 保証されない。(Bezierと同様) 連続性を保って接続したい場合は注意が必要
  62. 62. Computer Aided Design NURBS 非一様有理Bスプライン曲線(NURBS)
  63. 63. Computer Aided Design NURBS 非一様有理Bスプライン曲線(NURBS) 各制御点に重みを与えて、制御点毎に影響の強さを変える →1制御点レベルでの細かい調整が可能になる
  64. 64. Computer Aided Design NURBS 非一様有理Bスプライン曲線(NURBS) * * *
  65. 65. Computer Aided Design NURBS 非一様有理Bスプライン曲線(NURBS) 有理曲線ではないベジェ曲線、B-Splineでは厳密な 円弧を描画することが出来ない 円弧等の円錐曲線を数学的に正しく描画するために 有理曲線が使われる
  66. 66. Computer Aided Design NURBS NURBSをプログラムで確認 http://www.openprocessing.org/sketch/64350

×