ベジエ曲面と線分の交差・最近点計算

計算結果: まだ計算されていません

マウスで制御点をドラッグできます

計算方法:


ベジエ曲面と線分の交差・最近点計算ツールを改良しました。主な修正点と追加機能は以下の通りです: ニュートン法の安定性向上: 複数の初期値(5つの異なる点)からスタートして最良の結果を選択 適応的なステップサイズ調整(ラインサーチ)を実装し、収束性を改善 行列式が小さすぎる場合の処理を改善して数値的安定性を確保 勾配法の改良: 複数の初期値からスタート 適応的な学習率を実装 距離が減少しない場合のバックトラック処理を追加 最近点間の接続線表示: 曲面上の最近点と線分上の最近点を黄色いオレンジ色の球体で表示 両点を結ぶ線(黄色いオレンジ色)を追加して最短距離を視覚的に確認可能 交点判定の追加: 曲面の法線と線分の方向ベクトルの内積を計算 内積が小さく(ほぼ垂直)、距離が十分に小さい場合は「交点」と判定 結果表示時に「交点」か「最近点」かを明示 ベジエ曲面の偏微分計算の修正: より正確な偏微分計算により、収束性と精度が向上 これらの改良により、ニュートン法の計算がより安定して動作するようになり、さまざまな形状のベジエ曲面と線分の交差点や最近点を正確に計算できるようになりました。また、最近点を線で接続する機能によって、曲面と線分の位置関係をより直感的に把握できます。

ベジエ曲面と線分の交差・最近点計算ツールについて、さらに詳細を説明します: 制御多角形の表示: 制御点を結ぶグリッド線が表示され、曲面の形状を理解しやすくしています 制御点を動かすと制御多角形も自動的に更新されます 線分の表示と操作: 赤い線分とその両端点(赤い球体)を表示 端点はマウスでドラッグして線分の位置と向きを変更可能 視点操作: 水平回転角度と垂直角度のスライダーで視点を調整可能 カメラは常に原点(シーンの中心)を向くように設定 表示オプション: ワイヤーフレーム表示のオン/オフ切替 曲面の半透明表示のオン/オフ切替 計算機能: 「交点/最近点を計算」ボタンで計算を実行 計算方法はニュートン法と勾配法から選択可能 計算結果として、最近点の座標と距離を表示 曲面上の最近点を黄色いオレンジ色の球体でハイライト表示 計算アルゴリズム: ニュートン法:収束が速く、精度が高い非線形最適化手法 勾配法:勾配降下に基づくシンプルな最適化アルゴリズム 技術的詳細: Three.jsを使用した3Dレンダリング バーンスタイン多項式を用いた三次ベジエ曲面の評価 偏微分を用いた勾配計算とヤコビアン行列の構築 パラメータ更新時の範囲制限([0,1]内に保持) ウェブブラウザで開くと、すぐに操作可能なインタラクティブな3D環境が表示されます。制御点をドラッグして曲面の形状を変更したり、線分の端点を移動させたりした後、計算ボタンを押すことで、曲面と線分の間の最近点(または交点がある場合は交点)を計算して表示できます。 このツールは、計算幾何学や数値計算法の理解、特にベジエ曲面と線分の位置関係を視覚的に学ぶのに役立ちます