Deprecated: Creation of dynamic property Topic::$chronicle_score is deprecated in /home/test/htdocs/news/id.php on line 24

Deprecated: Creation of dynamic property Topic::$status is deprecated in /home/test/htdocs/news/id.php on line 24

Warning: Cannot modify header information - headers already sent by (output started at /home/test/htdocs/news/id.php:24) in /home/test/htdocs/php/common.php on line 164

Warning: Cannot modify header information - headers already sent by (output started at /home/test/htdocs/news/id.php:24) in /home/test/htdocs/php/common.php on line 165

Warning: Cannot modify header information - headers already sent by (output started at /home/test/htdocs/news/id.php:24) in /home/test/htdocs/php/common.php on line 166

Warning: Cannot modify header information - headers already sent by (output started at /home/test/htdocs/news/id.php:24) in /home/test/htdocs/php/common.php on line 167
Качканар / Bash

Bash

Старый форум

Эх, стар я стал... Совсем школьный курс геометрии забыл. :-)

Надобно решение простой задачки, может тусующиеся здесь школьники помогут? Итак, дано:

Два отрезка, заданные точками a1(x,y),a2(x,y) и b1(x,y),b2(x,y). Необходимо выяснить, есть ли пересечение этих отрезков? Как это сделать математическим путем?

Комментарии
rimmer

Уважаемый Bash! Чёто тут нето вы условие нетак записали, это получаются не отрнзки а одна точка.

Bash

Уважаемый rimmer!

Неправильно?! :- Ну... может быть... :-)

Я имел в виду, что первый отрезок задается двумя точками: a1 и a2, каждая из которых иммет координаты x и y. Соответственно второй отрезок задан точками b1 и b2...

rimmer

Уважаемый Bash! Я может чего и непонял?! Так точки имеют коардинаты или так болтаются? Я ж Еновской в глаза смотреть несмогу!!! Немог же я так быстро отупеть :(

13

Уважаемый Bash! Если корявый способ Вас у строет, то могу предложить:

Представляем отрезки как две прямые, Находим их точку пересечения и проверяем, принадлежит ли она обоим отрезкам - если да, то отрезки пересекаются, если - нет, то нет. Формула прямой по двум точкам: (Х-Х1)/(У-У1)=(Х1-Х2)/(У1-У2), где (Х1,У1)- координата первой точки (Х2,У2)- координата второй точки

получим две прямые Х=аУ+в (а,в,с,d - какие-то числа) Х=сУ+d

Точка пересечения прямых: (аУ+в)-(сУ+d)=0, находим У, подставляем его в ур-е любой прямой, находим Х

Получаем точку М(Х,У) и проверяем, принадлежит ли она ОБОИМ отрезкам.

P.S. Способ очень корявый, но другого я придумать (вспомнить) не смог тоже давно математику не читал.