Еще вопросик есть )

Тема в разделе "Delphi - Компоненты", создана пользователем tttt, 28 май 2007.

Статус темы:
Закрыта.
  1. tttt

    tttt Гость

    на оси координат задан квадрат,и надо сказать принадлежит ли точка области этого квадрата,это надо для каждой стороны квадрата задавать уравнение и потом эти уравнения как то связывать?
     
  2. niello

    niello Гость

    Я с этим если чесно не сталкивался, но можно пойти(я так думаю) несколькими путями
    1.Этот способ по моему мнению очень туп и много будет жрать, но его как вариант не будем отбрасывть: Берем от одной верхней точки квадрата проходим в цикле фор и если она совпадает проверяем во втором цикле вторую кординату.
    2.Этот полегче находим кординаты точки X(x,y)
    1(x1,y1) ________2(x2,y2)
    | |
    | |
    | |
    3(x3,y3)------------4(x4,y4)
    Будем надеятся что это квадрат :)
    Берем кординаты точки 1 и 4
    Путем не сложных операций x1=x3 x2=x4 y1=y2 y3=y4
    Проверяем уловием:
    ((x<x1)and(y<y3))or((x<x1)and(y>y1))or((x>x2)(y<y3))or((x>x2)(y>y1)) Не лежит
    Тута возможно не такое направление кординат как в Делфе, я выбрал снизу возрастает вверх Y слева направо X.
    Как на уроках, а в Делфе кажись возрастает все с верхнего левого угла.
    Хотя этот ответ у меня правилен тока для квадрата который паралелен осям кординат((
    Возможны и другие ответы...
    Хотя я может и не прав)
     
  3. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Если рассматривать частный случай, то я согласен с niello по поводу второго пункта. Только у меня остался вопрос о способе задания квадрата. Квадрат задается уравнениями сторон или координатами? Может ли квадрат быть расположен под углом к осям координат?
     
  4. tttt

    tttt Гость

    да,квадрат находится под углом к осям.его вершины имеют координаты:
    нижняя вершина (4;1)
    верхняя (4;7)
    левая (1;4)
    ну а правая (7;4)
     
  5. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Посмотри вот ЗДЕСЬ. Там для треугольника, но для квадрата переделать тоже можно
     
  6. zubr

    zubr Гость

    В винде есть функция API: PtInRect выполняющая данную задачу.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей