vicc blog

株式会社ヴィックの技術ブログです。

建築実務者なら知っておきたい幾何学のこと#2 「曲線の連続性」

Rhino+GHなどの3DCADで曲線/曲面を用いた建築物を設計していて、目的の形状をつくるために複数の曲線/曲面をつなぎ合わせたときになんかなめらかじゃないなぁ...」と感じたことはありませんか?

実は曲線や曲面のなめらかさ具合には連続性という概念が関係しています。

この度はそんな「曲線と曲面の連続性」について焦点を当て、2回に分けて説明したいと思います。まず今回は曲線の連続性について扱い、次回(#3)で曲面の連続性に発展させていきます。

目次
・位置連続(G0連続)
・接線連続(G1連続)
・曲率連続(G2連続)
・接線と曲率
・Gn連続とCn連続
・おまけ: 道路に用いられる緩和曲線

位置連続(G0連続)

図1

2本の曲線の端点が同じ位置で一致しているとき、それらの曲線は位置連続であるといえます(図1)。

位置連続のみの曲線は節点で折れ曲がったり尖がっていたりしていて明らかになめらかには見えません。

接線連続(G1連続)

図2 (端点における接線の方向を表示)

位置連続に加え、2本の曲線の端点における接線の方向が一致している場合は接線連続となります(図2)。

接線とは曲線のある点における傾きの方向を示す直線です(詳細は後述)。

位置連続のみの曲線と見比べて、節点で折れ曲がりのない接線連続の曲線はなめらかに見えます。

曲率連続(G2連続)

図3 (曲率をグラフとして表示)

位置連続・接線連続に加え、2本の曲線の端点における曲率が一致している場合は曲率連続となります(図3)。

曲率とは曲線の曲がり具合を示す値です(詳細は後述)。

接線連続のみの曲線と見比べて、節点で曲率がジャンプしていない曲率連続の曲線はよりなめらかに見えるのではないでしょうか。

ちなみに1本の曲線のみを考えた場合、3次のNURBS曲線では内部の曲率連続が保証されています。

接線と曲率

連続性についての理解をより深めるために接線と曲率の微分幾何学的な定義について軽めに触れたいと思います(証明は割愛)。小難しい内容かもしれないので読み飛ばしても大丈夫です。

ここでは分かりやすさのために平面曲線を扱います。xy平面上の曲線上をパラメータtで動く質点の軌跡をベクトルc(t)=(x(t),y(t))とします。このとき曲線c(t)を1階微分したc'(t)は接ベクトルと呼ばれ、点c(t)における接線の方向を示します(図4)。

図4

パラメータtを時間と捉えた場合、c'(t)は曲線c(t)上を動く質点の速度ベクトルを表現していることになります。

接線とは曲線上のある点の近くで曲線とその1点のみで触れている直線であり、その点における曲線の瞬間的な傾きの方向を示していると感覚的な理解をすると分かりやすいです。

次に始点からtの位置までの曲線c(t)の長さを弧長パラメータs(t)で表し、c(t)=c(s(t))=c(s)とパラメータ変換します。弧長パラメータ表示とすることでc'(s)を大きさが1の単位ベクトルで表すことができます。

単位接ベクトルc'(s)=e1(s)を反時計回りにπ/2回転(90°回転)させたe2(s)を単位法ベクトルと呼びます。このとき曲線c(s)を2階微分するとc''(s)=κ(s)·e2(s)と表すことができ、κ(s)を曲率と呼びます(図5)。

図5

c''(t)は速度ベクトルc'(t)の変化率を表す加速度ベクトルを表現しています。弧長パラメータ表示とすることで常に速さ|c'(s)|=1となるため、加速度c''(s)は純粋に速度c'(s)の±e2(s)方向への向きの変化の度合いを表します。その度合いを表す値が曲率κ(s)であるといえます。

曲率を逆数にとったR=1/|κ(s)|を曲率半径、点c(s)で曲線c(s)に内接する半径Rの円を曲率円と呼びます(図6)。

図6

曲率円とは曲線上のある点でその曲線を局所的に円弧で近似したときの円であり、そのときの半径が曲率半径であると感覚的な理解をすると分かりやすいです。

曲率が大きければ(曲率半径が小さければ)曲線の曲がり方は急激になり、曲率が小さければ(曲率半径が大きければ)曲線の曲がり方はゆるやかになります。

上記の考え方を発展させて空間曲線についての接線と曲率も定義することができます。興味がある方は参考文献[1]などを読んでみて下さい。

Gn連続とCn連続

一般的に3DCADにおいて曲線/曲面の連続性を表すためにGn連続という概念が用いられ、今まで見てきた位置連続/接線連続/曲率連続はそれぞれG0/G1/G2に対応します。

連続性を表す似たような概念にCn連続という概念もありますが両者は少し定義が異なります。

Cn連続(parametric continuity)は曲線がn階連続微分可能(n階微分可能でn次導関数が連続)であることが条件であるのに対し、Gn連続(geometric continuity)は曲線の幾何学的形状に着目して単に位置/接線/曲率が連続していることを条件としています。

例えば、C1連続では節点で接ベクトルの向きと大きさの両方が一致している必要があるのに対し、G1連続は接ベクトルの向きのみ一致していればよいというような具合です。

言い換えれば、時間tにおいてc(t)上を動く車の動画を撮ったときに車の動きのなめらかさを示す指標がCn連続性、車が走り去った後の軌跡の形のなめらかさを示す指標がGn連続性であるといえます。

かたちを扱う3DCADにおいては連続微分可能でなくても幾何学的形状が連続であれば十分であるため、Cn連続よりも計算量が少なく処理の軽そうなGn連続が標準とされているのではないでしょうか。

ちなみにn≧3の連続性が満たされていても人間の目には違いを判別することが難しいため、建築/ものづくり全般ではG2連続またはG3連続(曲率の変化率が連続)までが満たされていれば十分だと思います。

おまけ: 道路に用いられる緩和曲線

建築分野では曲線/曲面の連続性は主に見た目の美しさ(※連続性が高いほど美しいとは限らない)や品質管理のための分析に用いられますが、交通工学の分野では事故防止対策としても曲線の連続性が用いられています。

例えば自動車が道路を直角方向に曲がるとき、直線と円弧の道路が直接接続しているとG1連続となり、その節点で曲率が0から一定値にいきなりジャンプしてしまうため急ハンドルを切らなければなりません。

この対策として現在多くの道路では直線から円弧までの曲率をなめらかにつなぐクロソイドなどの緩和曲線が用いられています(図7)。

図7

直線と円弧の間に緩和曲線の区間を挿むことで全体としてG2連続の道路となり、なめらかなハンドル操作で曲がることができるようになります。鉄道の線路やローラーコースターのレールにも同様の技術が使われているそうです。

次回予告

今回は接線や曲率を用いて曲線の連続性について扱いました。次回(#3)はこれらを発展させた接平面や法曲率という概念を導入して曲面の連続性について説明したいと思います。

参考文献
[1] 宮岡礼子 . 曲線と曲面の現代幾何学-入門から発展へ . 岩波書店 . 2019
[2] Helmut Pottmann , Andreas Asperl , Michael Hofer , Axel Kilian . Architectural Geometry . Bentley Institute Press . 2007
[3] Erich Hartmann . Geometry and Algorithms for Computer Aided Design . Department of Mathematics, Darmstadt University of Technology . 2003