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

  • Автор темы tttt
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

tttt

Гость
#1
на оси координат задан квадрат,и надо сказать принадлежит ли точка области этого квадрата,это надо для каждой стороны квадрата задавать уравнение и потом эти уравнения как то связывать?
 
N

niello

Гость
#2
Я с этим если чесно не сталкивался, но можно пойти(я так думаю) несколькими путями
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.
Как на уроках, а в Делфе кажись возрастает все с верхнего левого угла.
Хотя этот ответ у меня правилен тока для квадрата который паралелен осям кординат((
Возможны и другие ответы...
Хотя я может и не прав)
 
04.09.2006
2 566
2
Минск
#3
Если рассматривать частный случай, то я согласен с niello по поводу второго пункта. Только у меня остался вопрос о способе задания квадрата. Квадрат задается уравнениями сторон или координатами? Может ли квадрат быть расположен под углом к осям координат?
 
T

tttt

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

zubr

Гость
#6
В винде есть функция API: PtInRect выполняющая данную задачу.
 
Статус
Закрыто для дальнейших ответов.