DirectX ピクセル シェーダーで、放物線上の任意の点に最も近い点を 2d で見つけようとしています。
大量のグーグル検索により、これが一般的な計算前の宿題の問題であることが明らかになりました。残念ながら、何百もの関連する回答はすべて、「この方程式が得られたら、グラフ電卓の最小関数を使用すると、答えが 6 であることがわかります。」
計算前のことは何も覚えていないことを告白します。私が探している方程式はおそらくウィキペディアにあると思いますが、これらのギリシャ記号を HLSL 関数に変換する方法がわかりません。C、C++、C#、またはその他の言語でのソリューションも大歓迎です。
編集:入力曲線の形式を確認するリクエストごと:
//Equation of parabola being y = ax^2 + bx + c
//p is the arbitrary point we're trying to find the closest point on the parabola for.
float2 GetClosestPointOnParabola(float a, float b, float c, float2 p)
{
//Something involving the distance formula...
//Something involving "minimization"...
return float2(x, y);
}