![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 18
|
![]()
В общем начало немножко знаю , а потом непонятно. Помогите пожалуйста...
Код:
Последний раз редактировалось dimokin777; 08.11.2011 в 22:43. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
начало у Вас уже неправильное. Отрезки все "плоские = одномерные" и расположены НА ОДНОЙ оси.
Поэтому каждый отрезок характеризуется двумя координатами (X1 и X2 - если Вам так будет угодно). Никаких Y,Z и т.д. я бы банально написал простенькую функцию, которая по переданным в неё 4-м координатам (две одного отрезка и две - другого) возвращает 2 координаты - отрезок, являющийся пересечением этих двух. Если пересечения нет - функция должна возвращать либо булевское значение, либо, например, координаты общего отрезка -1, -1 Берём 1-й и 2-й отрезки. получаем общий (пересечение) отрезок. Для полученного отрезка берём 3-й и получаем общий (пересечение предыдущего общего и текущего отрезка). Если на очередном этапе получаем -1 (или функция возвращает false) - всё. общих точек НЕТ! Если дошли до конца - то полученный отрезок и есть ответ - значит существует точка, которая принадлежит всем отрезкам. Внимание. Отрезок в данной задаче явно может вырождаться в ТОЧКУ! (это когда координата начала равна координате конца отрезка). |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 08.11.2011
Сообщений: 18
|
![]()
Спасибо большое за обьяснение , не могли бы вы изобразить хоть кусочек кода , интересен момент:
Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 08.11.2011
Сообщений: 18
|
![]()
Ну вот начало , а дальше не пойму...
Код:
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 08.11.2011
Сообщений: 18
|
![]() Цитата:
Гугл то знает , вот только я не пойму как несколько отрезков проверять... |
|
![]() |
![]() |
![]() |
#7 | |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
![]()
Есть 3 отрезка: первый, второй, третий.
Проверяем первый - второй. Есть пересечение - записываем рез-т в переменную и идём дальше, нет - конец задачи. Проверяем первый - третий.Нет пересечения - конец задачи. Есть пересечение - Проверяем этот рез-т с рез-том "первый - второй". Равны - идём дальше, нет - конец задачи. Проверяем второй - третий.Нет пересечения - конец задачи. Есть пересечение. Проверяем этот рез-т с рез-том "первый - третий". Равны - Есть пересечение трёх отрезков, не равны - злой рок значит. Я сейчас изложил тоже самое, что написал Serge_Bliznykov, только своими словами. Цитата:
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 09.11.2011 в 00:19. |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Код:
|
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 08.11.2011
Сообщений: 18
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить принадлежит ли точка прямоугольнику | Александр9999 | Помощь студентам | 1 | 03.12.2010 21:51 |
Определить попала ли точка в область? | Iogan Gamba Puti | Общие вопросы Delphi | 7 | 13.05.2008 00:15 |
Дана точка A с координ. X и Y, определить... | Cullen | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 30.01.2008 00:22 |