как квадратичная формула используется в игровом коде? - PullRequest
0 голосов
/ 10 мая 2018

Привет, ребята, я программист игры из Кореи.и только сегодня я нашел некоторый код, который использует формулу QUADRATIC для вычисления чего-либо.здесь код

hduVector3Dd p = startPoint;
hduVector3Dd v = endPoint - startPoint;

// Solve the intersection implicitly using the quadratic formula.
double a = v[0]*v[0] + v[1]*v[1] + v[2]*v[2];
double b = 2 * (p[0]*v[0] + p[1]*v[1] + p[2]*v[2]);
double c = p[0]*p[0] + p[1]*p[1] + p[2]*p[2] - m_radius * m_radius;

double disc = b*b - 4*a*c;

// The scale factor that must be applied to v so that p + nv is
// on the sphere.
double n;
if(disc == 0.0)
{
    n = (-b)/(2*a);
}
else if(disc > 0.0)
{
    double posN = (-b + sqrt(disc))/(2*a);
    double negN = (-b - sqrt(disc))/(2*a);
    n = posN < negN ? posN : negN;
}
else
{
    return false;
}

// n greater than one means that the ray defined by the two points
// intersects the sphere, but beyond the end point of the segment.
// n less than zero means that the intersection is 'behind' the
// start point.
if(n > 1.0 || n < 0.0)
{
    return false;
}

это часть функции, которая проверяет что-то на форму сферы.и я не мог понять, почему использовать КВАДРАТИЧЕСКУЮ ФОРМУЛУ для вычисления ЧТО-ТО.

любая идея, будет оправдана, я просто очень хочу знать, понимать и повторно использовать ее для моего кода в будущем ^^

1 Ответ

0 голосов
/ 10 мая 2018

Похоже, что он выполняет проверку столкновения линии и сферы.

Я не совсем уверен, где можно было бы использовать это (хотя я мог бы быть тупым xD)

...