Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 3 из 3
  1. #1
    Аватар для UnO
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2018
    Сообщений
    52
    Репутация:
    7 ±

    Определить линейность по массивам координат

    Есть у меня два массива с координатами x и y, нужно определить принадлежат ли их точки одной линии. В школе на алгебру забил, прошу помощи у тех, кто этого не сделал
    Последний раз редактировалось UnO; 23.04.2020 в 11:21.

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Для начала нужно вычислить соотношение расстояний между первыми двумя точками (0 и 1) по осям X и Y:
    PHP код:
    new Float:dx x[1] - x[0];
    new 
    Float:dy y[1] - y[0];
    new 
    Float:dist_ratio01 dx dy
    Теперь выясним то же соотношение расстояний между точками 1 и 2 и сравним его с соотношением между точками 0 и 1:
    PHP код:
    dx x[2] - x[1];
    dy y[2] - y[1];
    new 
    Float:dist_ratio dx dy;
    if (
    dist_ratio == dist_ratio01)
    {
        
    // Если соотношение равно - точки 0, 1 и 2 расположены на одной линии
    }
    else
    {
        
    // Точки не расположены на одной линии

    И дальше точно так же сравнивайте расстояния между остальными парами точек: 2-3, 3-4, ...
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. Пользователь сказал cпасибо:
    UnO (27.01.2018)
  4. #3
    Аватар для UnO
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2018
    Сообщений
    52
    Репутация:
    7 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Для начала нужно вычислить соотношение расстояний между первыми двумя точками (0 и 1) по осям X и Y:
    PHP код:
    new Float:dx x[1] - x[0];
    new 
    Float:dy y[1] - y[0];
    new 
    Float:dist_ratio01 dx dy
    Теперь выясним то же соотношение расстояний между точками 1 и 2 и сравним его с соотношением между точками 0 и 1:
    PHP код:
    dx x[2] - x[1];
    dy y[2] - y[1];
    new 
    Float:dist_ratio dx dy;
    if (
    dist_ratio == dist_ratio01)
    {
        
    // Если соотношение равно - точки 0, 1 и 2 расположены на одной линии
    }
    else
    {
        
    // Точки не расположены на одной линии

    И дальше точно так же сравнивайте расстояния между остальными парами точек: 2-3, 3-4, ...
    Всё настолько просто, лол. Спасибо.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •