Я пытаюсь найти ближайшую точку на параболе к произвольной точке в 2d для пиксельного шейдера DirectX.
Большое количество поисков в Google показало мне, что это общее предварительное исчислениедомашнее заданиеК сожалению, сотни релевантных ответов все говорят, например, «Как только вы получите это уравнение, используйте функцию минимума вашего графического калькулятора, и он скажет вам, что ответ равен 6».исчисление.Я понимаю, что уравнение, которое я ищу, вероятно, находится прямо там, в Википедии, но я не могу понять, как преобразовать эти греческие символы в функцию HLSL.Решение на C, C ++, C # или любом другом языке также будет высоко ценится.
edit: По запросу для просмотра формата входной кривой:
//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);
}