VectorSize

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Вычисляет длину вектора.

Параметры:

(Float:x, Float:y, Float:z)
Float:x, Float:y, Float:z Расстояния по осям X, Y и Z от точки начала до точки конца вектора.


Возвращаемое значение:

Длина вектора.

Info rhombus.png
Примечание
Вызов данной функции аналогичен выражению floatsqroot(x * x + y * y + z * z), однако отличается более короткой и простой записью, а также выигрывает в плане производительности за счёт меньших накладных расходов от вызовов нативных функций (для VectorSize() - 1 вызов; для приведённого выше выражения - 6 вызовов, т.к. умножение и сложение заменяется на вызовы функций floatmul() и floatadd()).
Для нахождения расстояний от точки до игрока, транспорта или NPC лучше подходят функции GetPlayerDistanceFromPoint(), GetVehicleDistanceFromPoint() и GetDistanceFromMeToPoint() соответственно.


Пример использования:

// Функция для нахождения расстояния между двумя объектами.
// Если один из объектов не существует, возвращает -1.0.
Float:GetDistanceBetweenObjects(objectid1, objectid2)
{
    new Float:x1, Float:y1, Float:z1;
    new Float:x2, Float:y2, Float:z2;
    if (0 == GetObjectPos(objectid1, x1, y1, z1) || 0 == GetObjectPos(objectid2, x2, y2, z2))
        return -1.0;
    return VectorSize(x2 - x1, y2 - y1, z2 - z1);
}


См. также: