⚠ ローカルファイルとして開いています。Chromeのセキュリティ制限によりコンソール警告が出ますが動作に影響はありません。

平面 → ベジエ曲面 最短点・最遠点

符号付き距離 f(u,v)=n·S(u,v)−d の偏微分の凸包クリッピングで極値を厳密計算 / 交差時は交線(最短距離0)をスライサーで抽出
★ 形状選択
32パッチ / 290制御点
★ 平面の向き(計測平面・断面 共通)
水平 (Y)
垂直 (X)
垂直 (Z)
スライダーで任意方向の法線を指定できます(自動正規化)。断面線は計測平面に平行なので「等距離線」になります
★ 距離計測平面
±100 で曲面の最下点・最上点に接する位置。内側では平面が曲面と交差
計測平面
最短・最遠点
—
★ 曲面の境界箱
境界箱を表示
制御点の箱(点線)
yz・xz・xy 平面(法線 x, y, z)に対する最近点・最遠点=各座標の最小・最大から求めた直方体を半透明表示。接点を ● で表示
(「境界箱を表示」で計算)
★ スライス配置(等高線)
▶ 自動アニメ(面を掃引)
★ ベジエクリッピング設定
0=パッチ単位のみ判定(粗い) 9=最大細分化(高精度・低速)
分割済み末端パッチ内をマーチングスクエアで細分(線分抽出)
表示設定
半透明曲面
曲面ワイヤ
断面線(等距離線)
面ごとに色分け
UV分割図(右下)
統計
パッチ数—
事前キャッシュ数—
スライス面数—
クリッピングテスト数—
断面線分数—
計算時間—
スライス面一覧
🖱 ドラッグ → 視点回転
🖱 ホイール → ズーム
最短点・最遠点:平面 n·p=d からの符号付き距離 f=n·S(u,v)−d の極値は ①パッチ4隅 ②境界曲線の停留点 ③内部停留点(∂f/∂u=∂f/∂v=0)のいずれか。 ③は偏微分の Bernstein 係数の凸包と 0 の交差で u,v 範囲を交互に絞り込み(ベジエクリッピング)、 縮まなければ4分割、現在の最小・最大を更新しえない部分パッチは枝刈り、末端をニュートン法で精密化。 偏微分は d を含まないので、平面の平行移動では再計算不要。平面が曲面と交差するときは最短距離0で、交線(紫)が最短点の集合。
境界箱:法線 x, y, z(yz・xz・xy平面)について同じ極値計算を行い、各座標の最小・最大から直方体を作る。
法線は3スライダーで任意方向に設定可能。
各パッチの制御点凸包が平面の片側に完全収容されている場合は判定を打ち切り(Bezier Clippingの核)、 それ以外は行・列の制御点から作る包絡線でUV範囲を直接絞り込み(本物のBezier Clipping)、 縮まない場合のみ4分木状に分割してマーチングスクエアで線分を抽出します。
視点: 左ドラッグ / ズーム: ホイール