Задача. Даны координаты трех точек \(A\),\(B\),\(C\). Точки расположены так, что образуют треугольник. Дана еще одна точка \(D\). Необходимо проверить лежит ли эта точка внутри треугольника \(\triangle ABC\). Написать код программы на #С++.
Решение. Сразу заметим, что здесь будет предложено решение, которое нельзя назвать наилучшим. Это - быстрое решение, но имеет целый ряд недостатков. Классическая идея для решения состоит в том, что если точка \(D\) лежит внутри треугольника \(\triangle ABC\), то получаются три треугольника, содержащихся внутри данного и сумма их площадей должна равняться площади данного треугольника. Т.е. должно выполняться равенство: \ А теперь поясним проблему. Вам придется сравнивать значения двух действительных чисел - площадь данного треугольника и сумму площадей трех внутренних треугольников. А, как известно, это можно сделать только с определенной точностью. На практике рассматривают разность этих площадей по модулю и сравнивают с маленьким числом, задающим точность сравнения. А это плохо.
Для решения задачи воспользуемся другой идеей:
Все точки треугольника (и любого выпуклого многоугольника) должны лежать по одну сторону от прямой, проходящей через каждую его сторону.Запишем уравнение прямой, проходящей, например, через точки A и B. Получим: \[\left(x - x_A \right) \left(y_B - y_A \right) - \left(y - y_A \right) \left(x_B - x_A \right) = 0\]. Уравнение записано в такой форме, чтобы не приходилось выполнять деление и переживать о нуле в знаменателе.
Теперь для любой точки \(\left(x;y \right)\) мы можем вычислить левую часть приведенного равенства. Для точек, лежащих на прямой мы должны получать ноль. В тоже время прямая разобьёт плоскость на две полуплоскости. Точки лежащие в одной полуплоскости будут давать положительные значения. А точки из другой полуплоскости - отрицательные.
Мы готовы проверить первое условие - принадлежит ли точка D \(\left(x_d,y_d \right)\) той же полуплоскости, что и точка C \(\left(x_c,y_c \right)\) относительно прямой \(\left(AB \right)\) ? Для этого подставим обе точки в левую часть приведенного выше уравнения прямой и убедимся, что получены значения одного и того же знака. А если одна из точек даст точно ноль? Это означает, что точка лежит на прямой. По условию задачи это может быть только точка D. Тогда она принадлежит треугольнику независимо от знака выражения, вычисленного для точки C.
Приведем код простенькой программы на С++. Вам надо ввести координаты трех вершин треугольника на плоскости, а затем координат точки, принадлежность которой треугольнику проверяется. Вот код программы. #include int main() { double xa, ya, xb, yb, xc, yc, xd, yd; scanf ("%lf%lf", &xa, &ya); // читаем координаты точки A scanf ("%lf%lf", &xb, &yb); // читаем координаты точки D scanf ("%lf%lf", &xc, &yc); // читаем координаты точки C scanf ("%lf%lf", &xd, &yd); // читаем координаты точки D printf ((((xd - xa)*(yb-ya)-(yd-ya)*(xb-xa))*((xc - xa)*(yb-ya)-(yc-ya)*(xb-xa)) >= 0) && (((xd - xb)*(yc-yb)-(yd-yb)*(xc-xb))*((xa - xb)*(yc-yb)-(ya-yb)*(xc-xb)) >= 0) && (((xd - xc)*(ya-yc)-(yd-yc)*(xa-xc))*((xb - xc)*(ya-yc)-(yb-yc)*(xa-xc)) >= 0)? "yes": "no"); return 0; } Проверить работу программы онлайн можно на нашем компиляторе
Справочник олимпиадника. Треугольники
1 . Если сумма стороны треугольника и высоты, опущенной на эту сторону, есть величина постоянная для данного треугольника, то есть , то такой треугольник равносторонний.
2 . Если треугольник остроугольный, и ортоцентр делит каждую из высот в одном и том же отношении, то треугольник равносторонний, то есть из равенства AH:HA 1 =BH:HB 1 =СH:HC 1 (для остроугольного треугольника) следует, что .
3. Два равносторонних треугольника ABC и CDE расположены по одну сторону от прямой АЕ и имеют единственную общую точку С. Пусть M, N и К - середины отрезков BD, АС и СЕ соответственно. Тогда треугольник MNK - равносторонний.
4. Через вершину С равностороннего треугольника ABC проведена произвольная прямая, К и М - проекции точек А и В на эту прямую, Р - середина АВ. Тогда треугольник КМР - равносторонний.
5. Треугольник Наполеона. Центры правильных треугольников, построенных внешним (внутренним) образом на сторонах произвольного треугольника, образуют правильный треугольник.
6 . Три прямые, проходящие через точку О, образуют друг с другом углы в 60°. Тогда проекции произвольной точки, отличной от О, на эти прямые являются вершинами правильного треугольника.
7 . Сумма расстояний от произвольной точки правильного треугольника до его сторон есть величина постоянная, равная высоте тругольника.
8. Из всех треугольников с заданным периметром наибольшую площадь имеет правильный треугольник.
9 . Из всех треугольников с заданной площадью наименьший периметр имеет правильный треугольник.
10. Обобщённая теорема Пифагора. Пусть CD - высота прямоугольного треугольника ABC, проведенная из вершины прямого угла. Тогда треугольники ABC, CBD и ACD подобны. Если , и - соответствующие линейные элементы этих треугольников, то
11. В прямоугольном треугольнике ABC из вершины прямого угла С проведена высота CD. Если r – радиус окружности, вписанной в треугольник ABC, r 1 – радиус окружности, вписанной в треугольник ACD , r 2 – радиус окружности, вписанной в треугольник CBD , то r 1 +r 2 +r=CD
12. В прямоугольном треугольнике биссектриса прямого угла делит пополам угол между медианой и высотой, проведённых из той же вершины.
13 . Квадрат величины, обратной высоте, опущенной на гипотенузу, в прямоугольном треугольнике, равен сумме квадратов величин, обратных катетам.
14. Если m a и m b – медианы, проведённые к катетам прямоугольного треугольника, m c – медиана, проведённая к гипотенузе, тогда справедливо равенство m a 2 +m b 2 =5m c 2 . Следствие. Квадрат радиуса окружности, описанной около прямоугольного треугольника, равен одной шестой суммы квадратов всех его медиан.
15 . Если окружность, вписанная в прямоугольный треугольник, делит гипотенузу на отрезки длиной m и n, то площадь данного треугольника находится по формуле S=mn .
16. На гипотенузе АВ прямоугольного треугольника ABC с катетами ВС=а и АС=b во внешнюю сторону построен квадрат АВКМ. Тогда расстояние от точки С до центра квадрата равно .
17. На гипотенузе АВ прямоугольного треугольника ABC во внешнюю сторону построен квадрат с центром в точке О, тогда СО есть биссектриса прямого угла.
18 . Сумма расстояний от произвольной точки основания равнобедренного треугольника до боковых сторон постоянная, равная высоте треугольника, проведённой к боковой стороне.
19 . Отрезок, соединяющий вершину треугольника с точкой, лежащей на противоположной стороне, меньше большей из двух других сторон.
20. Расстояние между любыми двумя точками, взятыми на сторонах треугольника, не больше наибольшей из его сторон.
21. Сумма расстояний от любой точки внутри треугольника до трёх его вершин больше полупериметра, но меньше периметра треугольника.
22. Пусть и - углы треугольника, причём, . Тогда 60˚, ≥60°, 0°< <90°.
23 . а) если треугольники ABC и A 1 B 1 C 1 таковы, что АВ = A 1 B 1 , AС = A 1 C 1 и BAC > B 1 A 1 C 1 , то ВС > B 1 C 1 .
б) если треугольники ABC и A 1 B 1 C 1 таковы, что АВ=A 1 B 1 , АС =A 1 C 1 и ВС>B 1 C 1 , то угол BAC > угла B 1 A 1 C 1 .
24 . Пусть AA 1 - медиана треугольника ABC. Угол А острый тогда и только тогда, когда AA 1 > .
25. Медиана треугольника ABC, проведённая из вершины А, меньше полусуммы сторон АВ и АС, но больше их полуразности.
26 . Сумма трёх медиан треугольника меньше периметра, но больше трёх четвертей периметра треугольника.
27 . Медианы и перпендикулярны тогда и только тогда, когда a 2 +b 2 =5c 2 .
28 . Медианы и перпендикулярны тогда и только тогда, когда .
29 . Если медианы и перпендикулярны, то .
30. Если медианы и перпендикулярны, то .
31.
Если , ,
-
медианы треугольника, проведённые к сторонам a,
b,
c
соответственно, то выполняются следующие соотношения: , , http://www.itmathrepetitor.ru/wp-content/plugins/latex/cache/tex_4a7393b5774f748db0e359b9c7420a65.gif" style="vertical-align: middle; border: none; " class="tex" alt="p
32 . > , > , > .
Следствие (уточнение оценки в следствии к 31.). Сумма медиан треугольника находится в пределах между тремя четвертями периметра и периметром треугольника,
то есть .
33 . Сумма медиан треугольника не меньше, чем удевятеренный радиус окружности, вписанный в треугольник, то есть .
34 . Удвоенная сумма медиан треугольника не превосходит удевятеренный радиус окружности, описанной около треугольника, то есть .
35 . В остроугольном треугольнике ABC проведены высоты BD и СЕ. Если BF и CG - перпендикуляры, опущенные из вершин В и С на прямую ED, то EF=DG.
36 . Точка Торричелли. На сторонах треугольника ABC построены вне треугольника равносторонние треугольники ВСА 1 , CAB 1 , АВС 1 , и проведены отрезки AA 1 , BB 1 и СС 1 . Тогда
а) эти отрезки равны;
б) эти отрезки пересекаются в одной точке;
в) если эта точка находится внутри треугольника ABC, то сумма её расстояний до трёх вершин треугольника равна каждому из отрезков АА 1 , ВВ 1, СC 1 .
г) если эта точка находится внутри треугольника АВС ,то из этой точки каждая сторона треугольника АВС видна под углом 120 0 .
д) для остроугольного треугольника точка Торричели является точкой, для которой сумма расстояний до вершин треугольника минимальна.
37 . Прямая Эйлера. В любом треугольнике точка Н пересечения высот (ортоцентр), центр О описанной окружности и точка М пересечения медиан (центр тяжести) лежат на одной прямой, причём точка М расположена между точками О и Н, и МН=2МО.
38 . Теорема Менелая. Дан треугольник ABC. Некоторая прямая пересекает его стороны АВ, ВС и продолжение стороны АС в точках C, A,B соответственно. Тогда
39 . Теорема Чевы. Пусть точки A 1 , B 1 и С 1 принадлежат соответственно сторонам ВС, АС и АВ ABC. Отрезки AA 1 , BB 1 , CC 1 пересекаются в одной точке тогда и только тогда, когда
40. Если площадь треугольника ABC равна S, то площадь треугольника, стороны которого равны медианам треугольника ABC, равна .
41 . Через некоторую точку, взятую внутри треугольника, проведены три прямые, параллельные сторонам. Эти прямые разбивают треугольник на шесть частей, три из которых - треугольники с площадями S 1 , S 2 , S 3 . Тогда площадь данного треугольника равна
42. Пусть Н- ABC, тогда
а) радиусы окружностей,описанных около треугольников ABC, АНВ, ВНС и АНС, равны между собой.
б) расстояние между серединами отрезков ВС и АН равно радиусу описанной окружности треугольника ABC.
в) расстояние от ортоцентра до вершины треугольника вдвое больше расстояния от центра описанной окружности до стороны, противоположной этой вершине.
г) точка, симметричная ортоцентру относительно стороны треугольника, лежит на описанной окружности треугольника.
д) А – точка пересечения высот треугольника ВСН, В - точка пересечения высот треугольника АСН, С- точка пересечения высот треугольника АВН.
43 . Если каждое из оснований высот треугольника проецируется на его стороны, тогда длина отрезка, соединяющего проекции, не зависит от выбора высоты.
44 . Если из вершины С остроугольного треугольника ABC опущена высота СН, а из точки Н опущены перпендикуляры НМ и HN на стороны ВС и АС соответственно, тогда треугольники MNC и ABC подобны.
45 . Если точки К и Р симметричны основанию Н высоты ВН ABC относительно его сторон АВ и ВС , тогда точки пересечения отрезка КР со сторонами АВ и ВС (или их продолжениями) - основания высот треугольника ABC .
46 . Расстояние между основаниями высот, опущенных на две стороны треугольника, равно произведению третьей стороны на модуль косинуса угла, противолежащего этой стороне, то есть , , .
Замечание. Треугольник CA 1 B 1 подобен треугольнику САВ с коэффициентом подобия, равным; треугольник АВ 1 С 1 подобен треугольнику АВС с коэффициентом подобия, равным . Аналогично остальные
47 . Свойства ортотреугольника (то есть треугольника с вершинами в основаниях высот данного треугольника).
а) высоты остроугольного треугольника являются биссектрисами углов его ортотреугольника.
б) если точки A 1 , B 1 и С 1 на сторонах соответственно ВС, АС и АВ остроугольного треугольника ABC таковы, что
BA 1 C 1 = CA 1 B 1 , CB 1 A 1 = AB 1 C 1 и AC 1 B 1 = BB 1 A 1 ,
то А 1 В 1 С 1 - ортотреугольник треугольника ABC.
в) точки касания вписанного в данный треугольник круга соединены отрезками и в полученном треугольнике проведены высоты. Тогда прямые, соединяющие основания этих высот, параллельны сторонам исходного треугольника.
г) Задача Фаньяно. Треугольник наименьшего возможного периметра с вершинами на сторонах данного остроугольного треугольника- это ортотреугольник данного треугольника.
48 . Если AD - биссектриса треугольника ABC, то
а)
б) AD 2 = АВ АС - BD CD.
49 . Теорема Штейнера - Лемуса. Если две биссектрисы треугольника равны, то он равнобедренный.
50. Продолжения биссектрис остроугольного треугольника ABC A 1, B 1, C 1 . Тогда высоты треугольника A 1 B 1 C 1 лежат на прямых AA 1, BB 1 , СС 1 .
51. Продолжения высот остроугольного треугольника ABC пересекают описанную окружность этого треугольника в точках A 1 , B 1 ,C 1 . Тогда биссектрисы треугольника A 1 B 1 C 1 лежат на прямых AA 1 , BB 1 , CC 1 .
52. Теорема Гаусса. Если продолжения сторон АВ, АС и ВС ABC пересекают прямую l в точках С, В и А, то середины отрезков АА, ВВ и СС лежат на одной прямой.
53 . На двух сторонах треугольника вне его построены квадраты. Тогда отрезок, соединяющий концы сторон квадратов, выходящих из одной вершины треугольника, в два раза больше медианы треугольника, выходящей из той же вершины.
54 . Через точку М на высоте AD произвольного треугольника ABC проводятся прямые ВМ и СМ, которые пересекают стороны АС и АВ в точках Р и Q соответственно. Тогда AD - биссектриса угла PDQ.
55 . Если окружность, вписанная в треугольник ABC, касается стороны ВС в точке М, то окружности, вписанные в треугольники АВМ и АСМ, касаются отрезка AM в одной точке.
56 . Окружность девяти точек. В любом треугольнике девять точек - середины сторон, основания высот и середины отрезков от вершин до ортоцентра - лежат на одной окружности.
Центр окружности Эйлера точка Е - середина отрезка ОН, где О- центр описанной окружности, Н - ортоцентр треугольника.
Диаметр окружности Эйлера равен радиусу описанной окружности.
57 . Окружность касается стороны ВС ABC в точке М, а продолжения сторон АВ и АС - в точках N и Р соответственно. Вписанная окружность этого треугольника касается стороны ВС в точке К, а стороны АВ - в точке L. Тогда
а) отрезок AN равен полупериметру треугольника ABC;
б) отрезок AL равен разности полупериметра и стороны ВС;
в) ВК = СМ;
г) NL = ВС.
58 . На сторонах ВС, СА, и АВ ABC взяты соответственно точки A,B и g, причём АС= AB, ВА= ВС и СА = CB. Тогда a, b и С - точки касания вписанной окружности со сторонами треугольника.
59 . Пусть р - полупериметр, a S - площадь треугольника.
а) Если r - радиус вневписанной окружности треугольника, касающейся стороны, равной а , то .
б) Если r - радиус вписанной окружности треугольника, a - радиусы вневписанных окружностей, то и .
60. Если прямая, проходящая через точку А и центр О вписанной окружности треугольника ABC, вторично пересекает описанную окружность этого треугольника в точке М, ВОМ и СОМ равнобедренные.
61 . Теорема Мансиона. Отрезок, соединяющий центры вписанной и вневписанной окружностей треугольника, делится описанной окружностью пополам.
62. Формула Эйлера. Если O 1 ,O 2 - центры вписанной и описанной окружностей треугольника ABC, а r и R - радиусы этих окружностей то O 1 O 2 = .
63. Около равностороннего треугольника ABC описана окружность, и на дуге ВС взята произвольная точка М. Тогда AM = ВМ + СМ.
64. Основание каждой высоты треугольника проектируется на боковые стороны треугольника,тогда шесть полученных точек лежат на одной окружности.
65. Вписанная окружность касается сторон АВ и АС ABC в точках М и N. Пусть Р - точка пересечения прямой MN и биссектрисы угла В (или её продолжения),тогда угол BPC = 90°.
66 .Окружность с центром О на стороне ВС равностороннего треугольника ABC касается сторон АВ и АС в точках Р и. Q соответственно. Касательная к окружности пересекает эти стороны в точках М и N, а отрезки ОМ и ON пересекают отрезок PQ в точках Е и F. Тогда EF = MN/2.
67 . В любом треугольнике радиус описанной окружности не меньше удвоенного радиуса вписанной окружности, причём равенство достигается тогда и только тогда, когда треугольник равносторонний.
68 . Пусть О - центр описанной окружности треугольника ABC, Н - точка пересечения высот. Тогда угол HAB равен углу OAC.
69 . Если ВМ и CN - высоты треугольника ABC, a O - центр описанной окружности треугольника, то ОA перпендикулярно MN.
70. а) Точка Жергонна. В треугольник вписана окружность. Точки касания со сторонами треугольника соединены с противоположными вершинами. Тогда три полученных отрезка пересекаются в одной точке.
б) Точка Нагеля. В любом треугольнике отрезки, соединяющие вершины с точками касания вневписанных окружностей с противоположными сторонами, пересекаются в одной точке.
71. В любом треугольнике ABC середина стороны ВС лежит на отрезке, соединяющем точку пересечения высот с точкой окружности, описанной около этого треугольника, диаметрально противоположной вершине А, и делит этот отрезок пополам.
72. Площадь треугольника не больше полупроизведения любых двух его сторон, то есть . >
81. Площадь треугольника не меньше квадрата радиуса вписанной окружности, умноженного на , то есть .