象牙の塔4階2号室・改

アスペとADHDの高専生によるブログ(不定期更新)

October 1st グラフをいじる(3D編)

10月!!?(呆れ)

日記

 あまりこれは広めたくないものの今日は、CADやBlender、Unityなどに応用される、数学でいうNURBSという手法を用いた3Dでのグラフアートでのチートを構築していた。

 この手法はだいぶ前(去年の春当たり)に取り上げたベジェ曲線の拡張(2から3次元)の拡張(ベジェ曲面というべきものからNURBS)となっている。2次元のベジェ曲線や3次元のベジェ曲面(曲面パッチ)の欠点として、

というものがあげられる。一つ目について、これはベジェ曲線をつなげても接続している箇所が曲がってしまい(連続でない)、仮に制御点を結んでできるような、それぞれの端点での接線?の傾きを同一にすることを行うと確かにそのような連続性の問題は解消されるものの、曲率というものの連続性までもは担保されないという事である。なお、かつて2Dでのグラフアートを作る際は接線の傾きを同一にすることにより連続性を持たせ、そのことで複雑な曲線の描写を可能にしていた。

 しかしこの方法をとると曲率の連続性は保証されない。これらの問題を解消するのがベジェ曲線の拡張であるNURBSという手法である。これに関して、ベジェ曲線で行ったように、複雑な曲線に対して複数の曲線を別に用意するのではなく「ノット」という概念を用いることで複雑な曲線をあたかも一つの曲線であるかのように扱うことができる。さらにこれは制御点に重みをもたせることによってそれぞれの制御点の曲線に与える影響を詳細に定めることを可能として、このことで正円の描写も可能とした。(以下はその手法で描かれた球体だがDesmos3Dにデフォルトである関数Sphereなどで作られたそれと見分けがつかない)

NURBSで描かれた球体