6x4点のNURBS曲面を描画するビジュアライザーを作成しました。(メッシュにエラー有)
NURBS(Non-Uniform Rational B-Splines)はベジエ曲面よりも数学的に複雑ですが、より柔軟な曲面表現が可能です。
主な機能と特徴:
NURBS曲面の実装
6x4の制御点を持つ3次NURBS曲面
制御点ごとに重み付け(現在はすべて1.0の等重NURBS)
Cox-de Boor再帰アルゴリズムによるB-Spline基底関数の計算
ユーザーインターフェースと操作:
マウス左ドラッグで回転
マウス右ドラッグで平行移動
マウスホイールでズーム
Ctrlキー+左ドラッグで制御点を移動
表示モード切替(ワイヤーフレーム/陰影/両方)
技術的な実装
オープンな均一ノットベクトルを使用
法線計算は数値微分による近似
効率化のためのメモリ管理と計算の最適化
サーフェス品質
高解像度(30x30)のメッシュ分割でスムーズな表示
曲面の更新は制御点の移動に応じてリアルタイム
操作方法は前回と同じで、Ctrlキーを押しながら赤い制御点をクリック&ドラッグで移動できます。移動に応じてNURBS曲面がリアルタイムで更新されます。
波状の初期形状から始まるので、制御点を動かして様々な形状を作成できます。