Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > принадлежность точки к отрезку


Автор: greengarlic 7.10.2010, 14:13
Всем привет,
есть отрезок с начальной точкой A(x1, y1) и конечной B(x2, y2). Имеется точка С(x, y), нужно определить нахождение этой точки на отрезке.
Есть готовые решения?
С чего начать?
Спасибо.

Автор: Crafty 7.10.2010, 14:16
greengarlic, с поиска ответа в гугле.
Например вот первая http://algolist.manual.ru/maths/geom/belong/otr2d.php.

Автор: greengarlic 7.10.2010, 14:23
Crafty, спасибо, там есть еще реализация
Этот класс, он работает правильно, но если я его вставляю в свой код то явно что то не то происходит, короче не попадаю на отрезок, есть реализация на boost: Geometry http://geometrylibrary.geodan.nl/index.html, но я никак не могу найти там то что мне нужно.

Автор: greengarlic 7.10.2010, 17:29
оказалось немного проще чем я думал,
нужно было найти расстояние от точки С к нашему отрезку, вот как это реализовалось у меня:
Код

  double up = ((y1-y2)*pageX+(x2-x1)*pageY+(x1*y2-x2*y1));        
  double down = sqrt( ((x2-x1)*(x2-x1)) + ((y2-y1)*(y2-y1)) );
  double dl = abs(up/down);

Таким образом dl показывает расстояние до линии.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)