NURBSトーラス描画システムを作成しました。このHTMLファイルには以下の機能が実装されています: 大半径と小半径をパラメータにしたNURBSトーラスの描画 制御点と制御多角形の表示(オン/オフ切り替え可能) マウスドラッグによる視点移動 主な技術的ポイント: Three.jsを使用して3Dレンダリングを実現 B-スプライン基底関数とNURBS曲面の評価関数を実装 開いたノットベクトルの生成 制御点をトーラス形状に適切に配置 マウスによるカメラ制御(回転) チェックボックスにより制御点(赤色)と制御多角形(緑色)の表示・非表示を切り替えることができます。マウスでドラッグすると、トーラスを様々な角度から見ることができます。
メッシュ生成の修正 境界でのパラメータ処理を改善:終端では0.999を使用して境界での計算誤差を回避 三角形メッシュの接続方法を改善:% resolutionを使用して周期的な接続を実現 解像度を30から40に上げてより滑らかな表面を生成 制御点の設定を変更 制御点数を両方向とも9に変更して、より均一なトーラスを生成 重みを適切に調整:円形状態を維持するために角度に応じた重み(0.7071 = 1/√2)を設定 位置による重みの変化パターンを実装し、より滑らかな曲面になるよう調整 パラメータの計算方法を変更 角度パラメータの計算方法を /num_u * 2 * Math.PI に変更(分母から -1 を削除) 周期的な境界条件の正確な実装
パラメトリック方程式を直接使用 NURBSによる近似計算ではなく、トーラスのパラメトリック方程式を直接使用 これにより、境界付近での数値誤差や不連続性を完全に排除 式: (x,y,z) = ((R + r*cos(v))cos(u), (R + rcos(v))sin(u), rsin(v)) 境界条件の適切な処理 周期的なトーラスの性質を考慮した適切なインデックス計算 モジュロ演算子 (%) を使用して境界をまたぐ場合の特殊処理を実装 境界をまたぐ場合も正しく三角形メッシュを構築 法線ベクトルの直接計算 表面法線を解析的に計算して直接設定 これにより、より正確な光沢と陰影効果を実現 三角形メッシュの可視化改善 ワイヤーフレーム表示をより効率的に実装 元のジオメトリを共有して使用するように変更 これらの変更により、トーラスの形状がより滑らかになり、特に境界部分での三角形メッシュの接続が正確になりました。三角形メッシュのチェックボックスをオンにすると、完全に正しい接続を持つワイヤーフレームが表示されます。