Что значит пересечение отрезков

Геометрия 7 класс.
Точка, прямая и отрезок

Казалось бы, что таким простым понятиям, как «точка» или «прямая», которые мы повседневно используем в жизни, крайне просто дать определения. Но на практике оказалось, что это не так.

Существует множество определений, которые давали знаменитые математики терминам «точка» и «прямая». За многие века ученые так и не пришли к единому определению.

Мы не будем приводить все определения точки и прямой. Остановимся на объяснениях, которые, на наш взгляд, наиболее простым образом их описывают.

Точка — элементарная фигура, не имеющая частей.

Прямая состоит из множества точек и простирается бесконечно в обе стороны.

Что значит пересечение отрезков

То есть выражаясь геометрическими обозначениями, информацию о расположении прямой и точек на рисунке выше можно записать так:

Как обозначить прямую

Прямую обычно обозначают одной маленькой латинской буквой.

Прямую, на которой отмечены две точки, иногда обозначают по названиям этих точек большими латинскими точками.

Задача № 1 из учебника Атанасян 7-9 класс

Решение задачи

Что значит пересечение отрезков

Что значит пересечение отрезков

Что значит пересечение отрезков

Что значит пересечение отрезков

Опишем взаимное расположение точек и прямой.

Как обозначается пересечение прямых

Что значит пересечение отрезков

Хотя на чертеже не видно, но прямые a и c тоже пересекаются (это становится ясно, если мысленно продолжить вниз прямые a и с ).

Что значит пересечение отрезков

Прямые e и f не имеют общей точки — т.е. они не пересекаются.

Взаимное расположение прямой и точек

Что значит пересечение отрезков

Через одну точку (·)A можно провести сколько угодно прямых.

Через две точки (·)A и (·)B можно провести только одну прямую.

Сколько общих точек имеют две прямые

Две прямые либо имеют только одну общую точку, либо не имеют общих точек.

Докажем утверждение выше. Для этого рассмотрим все возможные случаи расположения двух прямых.

Первый случай расположения прямых

Что значит пересечение отрезков

На рисунке выше мы видим, что у прямых f и e нет общих точек, т.к. эти прямые не пересекаются.

Второй случай расположения прямых

Что значит пересечение отрезков

Третий случай расположения прямых

Что значит пересечение отрезков

Вывод: две прямые либо имеют только одну общую точку, либо не имеют общих точек.

Задача № 3 из учебника Атанасян 7-9 класс

Проведите три прямые так, чтобы каждые две из них пересекались. Обозначьте все точки пересечения этих прямых. Сколько получилось точек? Рассмотрите все возможные случаи.

Решение задачи

Проведём две прямые a и b так, чтобы эти две прямые пересекались, и обозначим точку пересечения.

Что значит пересечение отрезков

Как мы видим, точка пересечения только одна. Мы можем провести третью прямую так, чтобы она тоже проходила через эту точку пересечения.

Что значит пересечение отрезков

Что значит пересечение отрезков

Мы убедились, что возможны оба варианта. Поэтому в ответе запишем их оба.

Ответ: точек пересечения получается одна или три.

Что такое отрезок

Отрезок — часть прямой, ограниченная двумя точками.

Что значит пересечение отрезков

Что значит пересечение отрезков

В отличии от прямой любой отрезок можно измерить. Т.е. каждый отрезок имеет длину.

Источник

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode

Найти точку пересечения отрезков

В статье покажем, как найти точку пересечения отрезков. Это совсем не тривиальная задача, хотя на первый взгляд она кажется именно такой. Поиск пересечения двух отрезков имеет множество полезных приложений. Например, с помощью него можно определить пересекаются ли фигуры на плоскости или нет.

Начальные условия

На протяжении всей статьи мы будем писать метод, который ищет пересечение двух отрезков на плоскости и даёт ответ: пересекаются они или нет.

Входными параметрами метода являются 4 точки – точки начала и конца двух отрезков.

Точка – это экземпляр класса Point. Она имеет два параметра: значение абсциссы (x) и значение ординаты (y). Класс Point:

Поиск пересечения двух отрезков

Метод, который будет искать пересечение двух отрезков, назовём: checkIntersectionOfTwoLineSegments. Он возвращает true, если отрезки пересекаются и false в противном случае.

Его аргументы – это четыре точки. p1 и p2 – начало и конец первого отрезка, а p3 и p4 – соответственно начало и конец второго отрезка.

Мы подразумеваем, что начальная точка находится левее конечной относительно оси абсцисс (оси X). Также возможен вариант, когда точки имеют одинаковую абсциссу, то есть отрезок является вертикальным.

В общем случае должно выполняться условие: p1.x

После того, как точки отрезков расставлены по порядку, мы можем сразу проверить наличие потенциального интервала, на котором отрезки могут пересекаться.

Что значит пересечение отрезков

Если конец первого отрезка находится левее начала правого отрезка (по оси X), то отрезки точно не имеют точки пересечения.

Потенциальный интервал пересечения имеется. Идём далее.

Оба отрезка вертикальные (частный случай)

Мы отдельно от общего решения будем рассматривать вертикальные отрезки, поскольку тангенс 90 градусов не определён, и, тем самым, мы в общем решении избежим деления на ноль.

Сначала обсудим такой частный случай, когда оба отрезка являются вертикальными.

Что значит пересечение отрезков

Непересекающиеся (слева) и пересекающиеся (справа) вертикальные отрезки

Отрезок вертикальный, тогда и только тогда, когда абсциссы его обеих точек равны.

В случае проверки условия вертикальности обоих отрезков, выражение (p1.x – p2.x == 0) && (p3.x – p4.x == 0) должно быть истинным.

Два отрезка будут иметь точку пересечения в том случае, когда их абсцисса одинакова (для этого достаточно условия p1.x == p3.x) и они имеют общую часть по оси ординат (общий Y); в противном случае делаем вывод, что они не пересекаются.

Составить условие для проверки существования общего Y мысленно довольно сложно. Поэтому мы поступим проще: составим условие для проверки того, что отрезки не имеют общего Y и возьмём от него отрицание.

Напишем код на Java для всего вышесказанного:

Источник

Точка пересечения двух отрезков

Введение

Уже не раз на habr затрагивалась данная тема: раз, два.

Я лишь хочу поделиться своей реализацией. Думаю, это кому-то пригодится.

Предупреждаю, данный метод не учитывает некоторые пограничные случаи и вхождение отрезков друг в друга.

Подготовка

Весь последующий код будет приведён на языке Java

Для начала создадим вспомогательный класс Dot. В нём всего две переменные x и y:

Задача 1: определить, касаются ли отрезки.

Что значит пересечение отрезков

Решение:
Из векторного произведения мы можем узнать, обхо́дим мы вектор по часовой или против часовой. Это поможет понять где находятся точки. Соединим точки A и D, A и C.

Что значит пересечение отрезков

Перемножим вектора main и v2, main и v1. Если полученные произведения имеют разные знаки, значит точки C и D находятся по разные стороны относительно отрезка AB. Назовём такой метод fromDifferentSides:

Таким же образом необходимо проверить точки A и B относительно отрезка CD. Соединим это в один метод и получится следующее:

Задача 2: определить точку касания.

Что значит пересечение отрезков

Решение:
Как и в предыдущей задаче определяем, касаются ли отрезки. Если касаются, начинаем определять эту точку. Через подобие найдём длину DO. Коэффициент подобия (k) равен отношению уже известных нам векторных произведений:

В третей строчке проверяем пограничный случай. Теперь узнаем чему равно DO. Для этого решим систему уравнений:

Что значит пересечение отрезков

DO = CO*k
Подставляем во второе уравнение:
CO*k+CO = CD
CO(k+1)= CD
CO = CD/(k+1)
В итоге:
DO = (CD/(k+1))*k

Теперь создаём вектор CD и уменьшаем его до длинны DO. Но поскольку мы будем его умножать, нужно взять обратное от (k+1)*k:

Теперь осталось добавить вектор к точке D:

Вот и всё! Мы получили заветную точку.

Предупреждаю, данный метод не учитывает некоторые пограничные случаи и вхождение отрезков друг в друга.

Функцию нахождения точки я назвал pointOfIntersection. Привожу полный код на Java:

Источник

Урок 32. Пересекаются ли два отрезка?

Урок из серии «Геометрические алгоритмы»

Здравствуйте, дорогой читатель. Напишем еще три новые функции.

Функция LinesCross() будет определять, пересекаются ли два отрезка. В ней взаимное расположение отрезков определяется с помощью векторных произведений. Для вычисления векторных произведений напишем функцию — VektorMulti().

Функция RealLess() будет использоваться для реализации операции сравнения «

Задача1. Два отрезка заданы своими координатами. Составить программу, которая определяет, пересекаются ли эти отрезки, не находя точку пересечения.

Решение
Пусть даны два отрезка. Первый задан точками Что значит пересечение отрезков. Второй задан точками Что значит пересечение отрезков.

Что значит пересечение отрезков
Взаимное расположение отрезков можно проверить с помощью векторных произведений:

Что значит пересечение отрезков
Рассмотрим отрезок Что значит пересечение отрезкови точки Что значит пересечение отрезкови Что значит пересечение отрезков.

Что значит пересечение отрезковТочка Что значит пересечение отрезковлежит слева от прямой Что значит пересечение отрезков, для нее векторное произведение Что значит пересечение отрезков> 0, так как векторы положительно ориентированы.

Точка Что значит пересечение отрезковрасположена справа от прямой, для нее векторное произведение Что значит пересечение отрезков Что значит пересечение отрезкови Что значит пересечение отрезков, лежали по разные стороны от прямой Что значит пересечение отрезков, достаточно, чтобы выполнялось условие Что значит пересечение отрезков Что значит пересечение отрезкови точек Что значит пересечение отрезкови Что значит пересечение отрезков.

Итак, если Что значит пересечение отрезков, то отрезки пересекаются.

Для проверки этого условия используется функцию LinesCross(), а для вычисления векторных произведений – функция VektorMulti().

Векторное произведение двух векторов вычисляется по формуле:

ax, ay — координаты первого вектора,

bx, by — координаты второго вектора.

Результаты выполнения программы:

Мы написали программу, определяющую, пересекаются ли отрезки, заданные своими координатами.

На следующем уроке мы составим алгоритм, с помощью которого можно будет определить, лежит ли точка внутри треугольника.

Уважаемый читатель. Вы уже познакомились с несколькими уроками из серии «Геометрические алгоритмы». Все ли доступно написано? Я буду Вам очень признательна, если Вы оставите отзыв об этих уроках. Возможно, что-то нужно еще доработать.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *