Пересечение 2-х отрезков.

Тема в разделе "WASM.A&O", создана пользователем Ravager, 10 июл 2008.

  1. Ravager

    Ravager New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    34
    Как короче всего обнаружить, пересекаются ли 2 отрезка, лежащих на координатной оси? Координаты концов 1-го отрезка dword ptr x1,dword ptr [x1+4], координаты концов 2-го - dword ptr x2,dword ptr [x2+4].
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Линии пересекаются если они имеют хотябы одну общую точку(x1=x2, y1=y2), тоесть если система уравнений имеет решение:
    Y=k1*X + B1
    Y=k2*X + B2
     
  3. Ravager

    Ravager New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    34
    В данном случае они лежат на одной оси, так что речь идёт именно о пересечении отрезков. Забыл упомянуть, что может быть как x1>[x1+4], так и наоборот, то же для x2.
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Ravager
    В таком случае y1=y2, найди условие при котором из всего промежутка [x1%x1'] существует хотябы одна точка принадлежащая отрезку [x2%x2'].
     
  5. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    типа того...
    Код (Text):
    1. mov eax,[x1]
    2. mov ecx,[x2]
    3. lea edx,[ecx+4]
    4. cmp eax,edx
    5. ja .net
    6. lea edx,[eax+4]
    7. cmp ecx,edx
    8. ja .net
    9. .oga:
    10. ....
    11. .net:
    упс. думол что [x1+4] указывает на то, что отрезок начинаецо с x1 длиной 4
     
  6. Ravager

    Ravager New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    34
    То есть (x1-x2)*(x1-x2')<=0 или (x1'-x2)*(x1'-x2')<=0. Слишком громоздко, по моему