9 / 9 / 3
Регистрация: 02.01.2012
Сообщений: 169
|
|
1 | |
Задача на построение выпуклой оболочки15.04.2012, 14:22. Показов 6903. Ответов 31
Метки нет Все метки)
(
Вот задача: на плоскости задано N точек, которые пронумерованы слева на право (а при равных абсциссах снизу вверх). Нужно создать программу, которая строит многоугольник, который является выпуклой их оболочкой, не более чем за C*N действий.
Я уже выяснил, что решается она с помощью алгоритма Джарвиса (с этим, думаю, разберусь сам). Непонятным остается то, как вывести результат. Ввожу координаты точек через stringgrid. Вопрос: как нарисовать точки и соединить их линиями?
0
|
|
15.04.2012, 14:22 | |
Ответы с готовыми решениями:
31
Построение выпуклой оболочки обходом Грэхэма Построение выпуклой оболочки множества точек Построение выпуклой оболочки по Грехему и Джарвису Выполнить дилатацию (построение выпуклой оболочки) и дальнейшее выделение контура бинарного изображения |
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
15.04.2012, 15:19 | 2 |
Собрать их в массив в порядке обхода, в конец продублировать первую точку.
Выбрать масштаб и либо соединить линиями Canvas.moveto, Canvas.lineto, либо нарисовать полигон Canvas.polygon.
1
|
9 / 9 / 3
Регистрация: 02.01.2012
Сообщений: 169
|
|
15.04.2012, 15:39 [ТС] | 3 |
А Chart для этого не получится использовать?
0
|
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
15.04.2012, 15:41 | 4 |
Точно не знаю, но думаю нет, да и зачем если все можно на канве нарисовать очень просто.
0
|
9 / 9 / 3
Регистрация: 02.01.2012
Сообщений: 169
|
|
15.04.2012, 15:57 [ТС] | 5 |
Puporev, а как выбрать масштаб?
0
|
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
||||||
15.04.2012, 16:00 | 6 | |||||
Я думаю рисовать лучше на канве Image.
Создать ее квадратной. найти мин и макс по Х и У. определить что больше разность по Х или по У и определить масштаб как
0
|
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
||||||
15.04.2012, 21:07 | 7 | |||||
![]() Решение
Я вот так нарисовал, где идею алгоритма почерпнул, не помню, реализация моя..
4
|
9 / 9 / 3
Регистрация: 02.01.2012
Сообщений: 169
|
|
17.04.2012, 18:22 [ТС] | 8 |
Puporev, а вот за это спасибо, только рисунок все равно не корректный, но это ничего, ибо понял, что обойдусь и без него.
0
|
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
17.04.2012, 19:15 | 9 |
0
|
9 / 9 / 3
Регистрация: 02.01.2012
Сообщений: 169
|
|
18.04.2012, 19:38 [ТС] | 10 |
0
|
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 15
|
|
18.04.2012, 20:32 | 11 |
есть корректная? киньте плиз
Добавлено через 25 минут Puporev можешь подкорректировать прогу на задачу выпуклой оболочки Добавлено через 3 минуты можешь подкорректировать? Добавлено через 1 минуту скинь плиз то что ты сделал
0
|
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
18.04.2012, 20:37 | 12 |
Ну и в чем некорректность? Или ты считаешь что оболочка должна проходить через все точки и в том порядке, как ввели? Если так, то лечись. Ты бы хоть на графику глянул.
Добавлено через 2 минуты Ернар, И ты тоже с головой не дружишь?
1
|
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 15
|
|
18.04.2012, 20:42 | 13 |
не обисуй...я воще не шарю в программировании...просто нужно чтобы через узловые точки проходила линия можешь так сделать?
0
|
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
18.04.2012, 20:50 | 14 |
Через какие точки и какая линия? Если у тебя другая задача, то создавай тему и пиши точное условие, а здесь тема про
Что я и написал. Если не имеете понятия что такое выпуклая оболочка, то и не вякайте.
0
|
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 15
|
|
18.04.2012, 20:50 | 15 |
не через все конечно....желательно чтобы все точки отобразились и по крайним точкам линия провелась....огроооомное спасибо заранее....это к моей дипломке просто....а я в ЯП воообще поооолный ноль((
0
|
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
18.04.2012, 20:51 | 16 |
Ернар, Ты настолько плох, что не можешь скачать архив и запустить программу?
1
|
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 15
|
|
18.04.2012, 20:52 | 17 |
да эта тема эта.....все хорошо.....просто нужно чтобы линия прошла по крайним точкам...таким образом создавая выпуклую оболочку....и чтобы все это было видно в графике
Добавлено через 52 секунды )))) я скачал и запустил.....на графике тока одна точка получается и все как на рисунке выше
0
|
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
18.04.2012, 21:02 | 18 |
Вот что у меня. Что не так?
1
|
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 15
|
|
18.04.2012, 21:05 | 19 |
воооо то что нужно....а у меня тока одна точка.....(сорь я не знаю как сфоткать показал бы)
Добавлено через 1 минуту посмотри час у Кима там фотка есть....вот так и у меня получается.....
0
|
18.04.2012, 21:11 | 20 |
0
|
18.04.2012, 21:11 | |
Помогаю со студенческими работами здесь
20
Нахождение выпуклой оболочки (3D) Нахождение выпуклой оболочки Определение выпуклой оболочки по методу Джарвиса Реализовать алгоритмы для построения выпуклой оболочки. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |