回転体NURBSビューア

マウス操作: 回転/ズーム/移動

回転方向: 13点円形(次数3)
軸方向: 6点(次数3)

このプログラムは要件通りに以下の特徴を持っています: 回転方向のNURBS曲線: 13点の制御点で構成 1番目と13番目の制御点は同じ座標(円形になるよう閉じている) 円形を適切に表現するために制御点に重みを設定(90度の位置で1.0、それ以外で0.707) 軸方向のNURBS曲線: 6点の制御点で構成された花瓶状のプロファイル 回転させることで回転体(花瓶のような形状)を生成 編集機能: 編集モードでは制御点を表示し、軸方向のプロファイルを編集可能 回転軸上の制御点をドラッグすると、その高さにある全ての制御点の半径が同時に変わる パラメータ設定: 回転方向と軸方向の次数を調整可能 レンダリング解像度を調整可能 制御点の数は固定(回転方向13点、軸方向6点) 美しい見た目: 陶器のような質感のマテリアル 複数のライトによる効果的なライティング 直感的なUI

回転体NURBSサーフェスビューアの拡張版が完成しました。以下の機能を追加しました: ワイヤーフレーム表示 ワイヤーフレームモードの切り替えボタンを追加 曲面をワイヤーフレームまたは陰影付き表示に切り替え可能 制御多角形の表示 制御点を結ぶ多角形を表示するボタンを追加 回転方向(赤色)と軸方向(緑色)の制御多角形を表示 編集モードがオンの時だけ表示 制御点の編集機能の強化 カメラの視点に対して直交する平面上での制御点移動を実装 回転方向の対称性を保つ制御点移動(半径と高さを維持) 個々の制御点の自由な移動にも対応 使い方は次のとおりです: 「編集モード: オン」 ボタンをクリックして編集モードを有効にします 「ワイヤーフレーム: オン」 ボタンで表示モードを切り替えられます 「制御多角形: オン」 ボタンで制御点を結ぶ線を表示できます マウスで制御点をドラッグすると形状を編集できます 「リセット」 ボタンで初期形状に戻せます このコードは回転体のモデリングや教育用途に適しており、NURBSの動作原理を視覚的に理解するのに役立ちます。

ノットベクトル生成の修正: U=1付近の三角形メッシュが正しく生成されるようノットベクトルのアルゴリズムを修正 円形NURBS曲線用の適切なノット配置を実装 制御点ドラッグの改善: マウス座標計算を固定サイズ600x450に対応するよう修正 ドラッグ中の制御点は赤色に変更して視覚的フィードバックを提供 ドラッグ終了後は元の色(黄/オレンジ)に戻す機能を追加 マウス操作の精度向上: レンダラー要素の実際の位置を考慮してマウス座標を計算するよう改善 カメラからのレイと平面の交差計算を最適化 デバッグモードの追加: 問題を特定しやすくするためのデバッグフラグを追加

三角形メッシュの問題をさらに修正し、曲面の色を青に変更しました。以下の変更を行いました: 三角形メッシュの修正: U=1付近での計算に特別な処理を追加(uClosedFix=0.9999を使用) ノットベクトルの生成アルゴリズムを完全に書き直し、標準的なクランプドノットベクトルを使用 開いた曲線向けのノットベクトル計算に変更し、両端に次数+1個の同じ値を配置 曲面の色の変更: 色を明るい青(0x3498db)に変更 シャイニネスを60に上げてより光沢感のある表面に ライティングを強化して青色が映えるよう調整 照明の改善: 背面からの光を追加して形状の輪郭を強調 全体的な照明の強度を上げて青い色がよく見えるように調整 これらの変更により、U=1付近での三角形メッシュの問題が解決され、曲面が青色で美しく表示されるようになっています。標準的なクランプドノットベクトルと最終U値の微調整の組み合わせによって、回転体の閉じた形状を正確に表現できるようになりました

次数3で正確な円を表現するために制御点の配置を修正しました。以下の変更を行いました: 制御点数の修正: 次数3の正確な円には13点必要(12の制御点+最初と同じ1点) 9点では次数2の円しか表現できないので制御点数を13点に戻しました 四半円ごとの制御点配置: 4つの四半円に分け、各四半円を3点で表現 主要方向(0°、90°、180°、270°)に重み1.0の点を配置 各四半円の30°と60°の位置に重み0.866(≈√3/2)の中間点を配置 より正確な重み: 中間点の重みを0.866に設定 この値は正確な円を生成するために数学的に導出された値 グリッドの色を暗く: グリッドの色を暗くして曲面が見やすくなるよう調整 これらの変更により、次数3で正確な円を表現できるようになりました。