SlideShare una empresa de Scribd logo
1 de 66
Descargar para leer sin conexión
Design Theory
第10回 2012 6/20
                                      村松 充
                 政策・メディア研究科 後期博士課程3年目
                  X-Design Program 山中デザイン研究室
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
 Bezier Curve
  微分する(A,B,C,Dは定数とみなせる)
  一階微分


  二階微分
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曲線同士の接続-
                               PA1

                                        PA2

                        PA0
                                     PB0 PA3
    PA3 = PB0
   であれば、位置連続(C0連続)
   (曲線は接続されている)                PB2
                                         PB1
                         PB3
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

 PA2からPA3へのベクトル    PA0からPA1へのベクトル

 ベクトルの大きさが等しい場合C0連続
 ベクトルの向きのみが等しい場合G0連続
                                    PB1 - PB0
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
                        PA3 - PA2
                                        PB2 - PB1

                           PA1 - PA2
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   m:ノットの数 6つ
 B-Spline               n:次数     2次
    B-スプライン曲線           制御点の数   3つ
                        t = [0,1,2,3,4,5]
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
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
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
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
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
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
Computer Aided Design
 B-Spline
  i=0 のとき
Computer Aided Design
 B-Spline
  i=0 のとき

                        1




                        0.5




                        0     0.5   1   1.5   2   2.5   3
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
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つ
                        t = [0,1,2,3,4,5,6]
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
Computer Aided Design
 B-Spline
    制御点4点の2次B-splineをプログラムで確認
     http://www.openprocessing.org/sketch/64342
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
Computer Aided Design
 Cubic B-Spline
    3次のB-スプライン曲線を考えてみる
t - ti
                                                               ti+1 - ti bi,0
Computer 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
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

                           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
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
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
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

Más contenido relacionado

La actualidad más candente

elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバHidetaka Kojo
 
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】MOCKS | Yuta Morishige
 
研究発表で失敗しないための8つのTips
研究発表で失敗しないための8つのTips研究発表で失敗しないための8つのTips
研究発表で失敗しないための8つのTipsYasunori Sakai
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門Takeshi Arabiki
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15Yoichi Ochiai
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法Hirokatsu Kataoka
 
ランク6の俺がパズドラについて語る
ランク6の俺がパズドラについて語るランク6の俺がパズドラについて語る
ランク6の俺がパズドラについて語るtosaka 2
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選Yusuke Uchida
 
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組みShintaro Fukushima
 
C++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみようC++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみようHiro H.
 
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』Proktmr
 
分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17Takuya Akiba
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 
Batch normalization effectiveness_20190206
Batch normalization effectiveness_20190206Batch normalization effectiveness_20190206
Batch normalization effectiveness_20190206Masakazu Shinoda
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用Ryo Iwaki
 

La actualidad más candente (20)

明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
elixirを使ったゲームサーバ
elixirを使ったゲームサーバelixirを使ったゲームサーバ
elixirを使ったゲームサーバ
 
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
 
研究発表で失敗しないための8つのTips
研究発表で失敗しないための8つのTips研究発表で失敗しないための8つのTips
研究発表で失敗しないための8つのTips
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
ランク6の俺がパズドラについて語る
ランク6の俺がパズドラについて語るランク6の俺がパズドラについて語る
ランク6の俺がパズドラについて語る
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
Rによるベイジアンネットワーク入門
Rによるベイジアンネットワーク入門Rによるベイジアンネットワーク入門
Rによるベイジアンネットワーク入門
 
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
 
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
 
C++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみようC++のライブラリを簡単に眺めてみよう
C++のライブラリを簡単に眺めてみよう
 
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
 
分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
Batch normalization effectiveness_20190206
Batch normalization effectiveness_20190206Batch normalization effectiveness_20190206
Batch normalization effectiveness_20190206
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用
 

SFC Design theory 2012 6/20

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