🖱 ドラッグ → 視点回転(輪郭線は視点依存なので毎回再計算)
🖱 ホイール → ズーム
面が視線に対して真横を向く点、すなわち
f(u,v) = ( S(u,v) − E ) · N(u,v) = 0
が輪郭線の条件です。N = Su×Sv は 5×5 次、
f は 8×8 次のベジエ関数になるので、その制御係数を厳密に計算し、
全係数が同符号なら輪郭線は存在しない(凸包性による棄却)と判定できます。
符号が混在する場合のみ、行・列の係数から作る包絡線でUV範囲を収縮させ、
末端でマーチングスクエアにより零集合を線分として取り出します。
E を光源に置き換えれば、同じコードがそのまま明暗境界線の抽出になります。