![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Noname |
![]()
Сообщение
#1
|
Гость ![]() |
Задан тругольник координатами своих верщин A(x1;y1), B(x2;y2), C(x3;y3). Нужно определить лежит ли точка K(x4;y4) внутри треугольника или снаружи....
|
![]() ![]() |
Some1 |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 38 Репутация: ![]() ![]() ![]() |
[img]http://public.t35.com/img/triangle-1.jpg[/img]
Вот, на этой картинке точка это D. На картинке видно, что если провести прямые через углы треугольника, то одна из этих прямых будет обязательно пересекать боковую сторону треугольника, расстояние от угла из которой пущена прямая до точки пересечения будет меньше чем расстояние от этого угла до точки D. В нашем случае расстояние СO меньше чем расстояние СD. Если же точка D будет лежать внутри теругольника, то расстояние CO Будет больше чем CD. Следовательно дело за математикой. Ищёшь формулу прямой по двум точкам и вычисляешь её для DA, DB и DC. потом формулу точки пересечения двух прямых, ищешь точки пересечения DA c BC, потом DС c AB, и наконец DB с AC. Вычисляешь и сравниваешь длины отрезков OC и OD, а так же другие (для соответствующих сторон). Если отрезки от точек треугольника до точки их пересечения с противоположной гранью БОЛЬШЕ, чем длины отрезков от точки пересечения до искомой точки во всех трёх случаях, значит точка лежит вне треугольника. П.С. Извините все, что так много, и совершенно не оптимально. Я просто более лёгкого способа не придумал ещё :)) |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2024 18:21 |