SlideShare ist ein Scribd-Unternehmen logo
1 von 66
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかShunsukeNakamura17
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)Hiroki Nakahara
 
Mixed Precision Training
Mixed Precision TrainingMixed Precision Training
Mixed Precision TrainingMasao Taketani
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」ManaMurakami1
 
「深層学習」第6章 畳込みニューラルネット
「深層学習」第6章 畳込みニューラルネット「深層学習」第6章 畳込みニューラルネット
「深層学習」第6章 畳込みニューラルネットKen'ichi Matsui
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII
 
三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイ三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイNaoya Chiba
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜Jun Okumura
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化Proktmr
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリングmlm_kansai
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性西岡 賢一郎
 

Was ist angesagt? (20)

SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
 
Mixed Precision Training
Mixed Precision TrainingMixed Precision Training
Mixed Precision Training
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
「深層学習」第6章 畳込みニューラルネット
「深層学習」第6章 畳込みニューラルネット「深層学習」第6章 畳込みニューラルネット
「深層学習」第6章 畳込みニューラルネット
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイ三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイ
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
モデルベース協調フィルタリングにおける推薦の透明性に関する検討
モデルベース協調フィルタリングにおける推薦の透明性に関する検討モデルベース協調フィルタリングにおける推薦の透明性に関する検討
モデルベース協調フィルタリングにおける推薦の透明性に関する検討
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性
 

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