Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2010, 16:19   #1
strateg66
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 23
По умолчанию Определение периметра четырехугольника

Здравствуйте.
Мне не нужно решение задачи, скорее нужна помощь по алгоритму решения.
Необходимо найти периметр четырехугольника с заданными координатами вершин. все кажется довольно таки просто, кроме того, что стороны четырехугольника неизвестны.
Для первого случая (рис.1) все работает, а вот на рис 2 простой алгоритм перестает работать.
Изображения
Тип файла: gif Безымянный.GIF (1.8 Кб, 111 просмотров)
strateg66 вне форума Ответить с цитированием
Старый 09.01.2010, 19:05   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

1) Берём 2 точки (назовём эти точки А и Б) которые максимально удалены (длину отрезка через координаты надеюсь знаете как найти) - это даст нам уверенность что мы выбрали диагональ. Оставшиеся точки назовём В и Г
2) Вычисляем площади треугольников АБВ и АБГ (через координаты по формуле Герона)
3) Складываем и получаем ответ
eoln вне форума Ответить с цитированием
Старый 09.01.2010, 19:31   #3
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

2eoln а периметр то тут причем?
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 09.01.2010, 19:42   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от IT-man Посмотреть сообщение
2eoln а периметр то тут причем?
Да уж, чего-то я попутал (мне показалось там площадь), чуть изменим 2 пункт
2) Вычисляем длины сторон АВ, АГ, БВ, БГ
3) Складываем и получаем ответ
eoln вне форума Ответить с цитированием
Старый 09.01.2010, 19:58   #5
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Берём 2 точки (назовём эти точки А и Б) которые максимально удалены (длину отрезка через координаты надеюсь знаете как найти) - это даст нам уверенность что мы выбрали диагональ.
Не факт! Пример трапеция!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 09.01.2010, 20:15   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

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

Цитата:
2) Вычисляем длины сторон АВ, АГ, БВ, БГ
добавлю, что расстояние между двумя любыми точками, заданными своими координами, находится как квадратный корень из суммы квадратов разностей координат:
пусть координаты точки A (x1, y1) и точки B (x2, y2 )
тогда расстояние AB =
Код:
  Sab = SQRT( SQR(x2-x1) + SQR(y2-y1))
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.01.2010, 20:21   #7
cherw9!40k
Пользователь
 
Аватар для cherw9!40k
 
Регистрация: 20.11.2009
Сообщений: 61
По умолчанию

Это из теории графов. Погугли - есть алгоритмы определения замкнутого пути с отсутствием пересечений.
cherw9!40k вне форума Ответить с цитированием
Старый 09.01.2010, 20:51   #8
strateg66
Пользователь
 
Регистрация: 07.10.2009
Сообщений: 23
По умолчанию

Во-первых у меня на рисунке нет вершин А, В, Г, Б, а есть вершины A, B, C, D.
Во-вторых, как правильно меня понял червячок, основная проблема - нахождение именно правильных сторон. Ведь в двух предоставленных вариантах стороны у четырехугольника - разные. В первом: AB, BC, CD, DA, во-втором: AD, DB, BC, CA. Отсюда, собственно, и затруднение в нахождении алгоритма.
К сожалению, ничего путного по теории графов пока найти не могу.
strateg66 вне форума Ответить с цитированием
Старый 09.01.2010, 21:39   #9
cherw9!40k
Пользователь
 
Аватар для cherw9!40k
 
Регистрация: 20.11.2009
Сообщений: 61
По умолчанию

Предлагаю алгоритм поиска в длину (упрощенный, ибо количество вершин статично) с использованием проверки, есть ли пересечение при найденном обходе (ввиду того, что известны координаты и кол-во вершин 4, опять таки проверить не составит труда).
cherw9!40k вне форума Ответить с цитированием
Старый 09.01.2010, 21:50   #10
cherw9!40k
Пользователь
 
Аватар для cherw9!40k
 
Регистрация: 20.11.2009
Сообщений: 61
По умолчанию

Тут еще такая идея возникла. Точки расположены на координатной прямой. Берешь плоскость (можно не брать, можно только представлять в уме )) ). Проверяешь по Х какие точки расположены правее, какие левее. Потом, аналогично по Y - кто выше, кто ниже. Ну, и там как-нибудь сообразить.
cherw9!40k вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать программу нахождения площади и периметра на Delphi _Andruha_ Помощь студентам 2 24.12.2009 05:29
Определение IP IvanLex HTML и CSS 6 28.03.2008 07:46
Определение IP IvanLex Общие вопросы по Java, Java SE, Kotlin 1 19.02.2008 09:12
Определение IP RKS Работа с сетью в Delphi 3 13.12.2007 15:43
из Паскаля определить запущен ли Windows Трофимов Александр Паскаль, Turbo Pascal, PascalABC.NET 9 14.06.2007 15:25