実装内容:
- 全体を通して
- 制御点の移動(ドラッグと座標指定両方可能)
- ステップ数の変更(2以上)
- 制御点,サンプル点の表示・非表示
- カメラの視点や座標や制御点の個数をデフォルトに指定
- ベジェ曲線
- 制御点の追加・削除
- 次ベジェ曲線の描画
- ベジェ曲線の分割(0から1の間の値で指定)
- パラメタのサンプリング方法の変更(等分とド・カステリョのアルゴリズム)
- 有理ベジェ曲線の描画(各点の重みを数値で指定可能)
- 3次 Catmull-Rom スプライン
- 制御点の追加・削除
- 制御点が同時に同じ座標を取らないように制御
- ノット列の決め方(一様,孤長依存,求心性依存)
- 同時に複数のノット列の決め方による曲線を描画可能
- ベジェ曲面
- 制御点は16個で固定
- 制御点間の線の色分け(軸方向は赤,軸方向は青)
- 曲面上にメッシュを表示
- Zバッファ法で前後関係による表示・非表示の制御
- Coons曲面
- 制御点は12個で固定
- 各辺上の制御点間は等分にサンプリングしたベジェ曲線を使用
- 制御点間の線の色分け(軸方向は赤,軸方向は青)
- 曲面上にメッシュを表示
- Zバッファ法で前後関係による表示・非表示の制御
制御点名と制御点位置:
制御点の追加・削除ができ,ドラッグと座標指定の両方で制御点を移動できるようにしたが,制御点と制御点名の関係をうまく示すことができなかった.
具体的には座標上の点の横に制御点名を入れようとしたが,かなり複雑なため挫折してしまった.
そのため,制御点名と位置の関係を記しておく.
- ベジェ曲線
初期状態で左下にあるものから制御点間の青線を辿る順に,,となる.
制御点を増やしてもはずっと変わらず,制御点間の青線を辿る順に最大まで定義される.
- 3次 Catmull-Rom スプライン
常に座標の小さい順にから最大まで定義される.
- ベジェ曲面
初期状態で座標が最も小さい中で座標が最も小さい点をとし,その後おおよそ軸正の方向にまで定義される.
次は座標が最も小さい中で座標が2番目に小さい点をとし,同様に軸正の方向にまで定義される.
これを繰り返して,まで定義される.それぞれの制御点の名称はこれ以降座標を変化させても変わらない.
- Coons曲面
初期状態で座標が最も小さい中で座標が最も小さい点をとし,その後おおよそ軸正の方向に最も近い点を取る.
その後,曲面の周囲を回るようにまで定義する.それぞれの制御点の名称はこれ以降座標を変化させても変わらない.
マウス操作:
- Drag: 制御点の移動
- Alt+Drag: 視点の移動
- Alt+Shift+Drag: ズーム
- Ctrl+Drag: 視点の回転