Создать функцию, помогите

Тема в разделе "PHP", создана пользователем phillip, 10 дек 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Помогите создать функцию
    Суть в чем... Есть массив $arr=Array();
    Я даю юзеру его заполнять значениями, каждое значение объекта представляет собой массив из двух чисел:
    $arr[0][0] = 24 ;
    $arr[0][1] = 132 ;
    допустим это юзер ввел в первый раз. Далее он вводит еще два числа, и получается
    $arr[1][0] = 165 ;
    $arr[1][1] = 240;
    Затем он вводит еще два числа
    $arr[2][0] = 30 ;
    $arr[2][1] = 150;
    И тут возникает трабла. Последний, красный отрезок накладывается поверх первого зеленого (см. вложение before.jpg).
    Задача в том, чтобы при добавлении нового отрезка выполнялась проверка, не накладывается ли он на уже добавленные. И если накладывается, то
    должен быть скорректирован так, чтобы не мешался. В нашем примере- при добавлении последнего отрезка он должен автоматически преобразоваться в
    $arr[2][0] = 133 ;
    $arr[2][1] = 150;
    Чтобы получилось то, что на рисунке after.jpg
     

    Вложения:

    • before.jpg
      before.jpg
      Размер файла:
      23,4 КБ
      Просмотров:
      7
    • after.jpg
      after.jpg
      Размер файла:
      21,9 КБ
      Просмотров:
      6
  2. homa1denis

    homa1denis Постоялец

    Регистр.:
    3 янв 2008
    Сообщения:
    58
    Симпатии:
    5
    Можно подробнее, что за отрезки? Каким способом они выводятся? Что-то я не понимаю(((
     
    phillip нравится это.
  3. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    каким образом выводятся это не принципиально. Важно то, что юзер добавляет новый отрезок, указывая ему точку начала, и точку конца.
    Наша задача- обрезать этот отрезок, если он пересекается с отрезками, введенными до этого
     
  4. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    PHP:
    $arr[0][0] = 24;
    $arr[0][1] = 132;
    $arr[1][0] = 165;
    $arr[1][1] = 240;
    $arr[2][0] = 30 ;
    $arr[2][1] = 150;

    $range1 range($arr[0][0], $arr[0][1]);
    $range2 range($arr[2][0], $arr[2][1]);
    $arr[2][0] += sizeof(array_intersect($range1$range2));
    Вот пример для сравнения 2х отрезков, далее сам додумаешь.
     
Статус темы:
Закрыта.