IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> построить треугольники
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Женский
Реальное имя: Ольга

Репутация: -  0  +


Помогите написать программку, пожалуйста smile.gif

Дано 3n точек на плоскости , причем никакие3 из них не лежат на одной прямой, построитьмножество n треугольников с вершинами в этих точках так, чтобы никакие 2 из них не пересекались и не содержали друг друга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(olka @ 21.02.2006 21:09) *

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

Olka, есть вопросы к тебе:
1. Есть какой-нибудь алгоритм или его изобретение входит в задачу?
2. Если входит, то примерно какой он должен быть: перебор, итерации, просто четкое математическое решение - или это все равно?
3. Если входит, то достаточно ли будет привести сам алгоритм или помочь тебе с написанием программы?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Есть, например, такой простой алгоритм..
Положим, что точки заданы декартовыми координатами (если другими - переводим в декартову систему). Рассмотрим одну из координат - скажем, X. Понятно, что никакие три точки не имеют одну и ту же координату Х, иначе они лежали бы на одной прямой. Располагаем точки в порядке возрастания координаты Х. Если две точки имеют одинаковую координату Х, их порядок между собой (внутри пары) не важен. Далее, полученный ряд точек разбиваем на тройки. Каждая такая тройка - это вершины треугольника. Эти треугольники не пересекаются и не содержат друг друга (это практически очевидно).

Написать прогу по этому алгоритму несложно. Сможешь?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Типичная задача триангуляции.
Триангуляция области, представленной набором точек.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Altair @ 23.02.2006 12:46) *

Триангуляция области, представленной набором точек.

Верно, но там добавлено еще одно условие, которое тут отсутствует. Соответственно, алгоритм значительно сложнее (просто несравнимо - этот уложится в пару строк, а тот - с полсотни строк со сложной логикой).
Но, похоже, автор этого вопроса забыла о нем, так что наш с тобой разговор все равно вряд ли найдет применение.. smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Altair @ 23.02.2006 13:13) *

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

странно.. мой монитор упорно показывает что-то другое.. smile.gif)

Цитата

Процедура осуществляет разбиение области на треугольники, при этом разбиение области удовлетворяет двум условиям:

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



Я имел в виду, что в твоей ссылке есть дополнительное условие.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Я имел в виду, что в твоей ссылке есть дополнительное условие.

какое ????


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


я понял в чем мы разошлись. Я по умолчанию полагал, что необходимо построить все возможные треугольники...
Если нет, то алгоритм lapp'a подходит...Прикрепленное изображение


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Altair @ 23.02.2006 13:44) *

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

Да, триангуляция подразумевает полное покрытие области треугольниками. Здесь же четко сказано, что треугольников должно быть ровно n. Так что алгоритм со ссылки не подходит, увы, совсем.
Интересно было бы попробовать переделать мой алгоритм в полную триангуляцию (но без условия на кратчайшую диагональ!).. Или просто придумать более простой алгоритм. Надо подумать..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.01.2025 6:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name