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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2019, 16:43   #1
lamer_
Пользователь
 
Регистрация: 03.12.2019
Сообщений: 15
По умолчанию Алгоритм Джарвиса

Здравствуйте. Помогите, пожалуйста. Есть два массива X и Y. Первый содержит координаты X некоторых точек, ворой - координаты Y.
Нужно начертить границы для заданного множества точек (см рисунок).
Вопрос в том как это сделать. Надо ли два массива объединять в один?
Как применить алгоритм Джарвиса для двух массивов? Перерыл интернет, ничего не понял.
PS: C++ CLI
Изображения
Тип файла: jpg Безымянный.jpg (20.7 Кб, 0 просмотров)
lamer_ вне форума Ответить с цитированием
Старый 09.12.2019, 18:35   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от lamer_ Посмотреть сообщение
Надо ли два массива объединять в один?
Надо.

Цитата:
Сообщение от lamer_ Посмотреть сообщение
Перерыл интернет, ничего не понял.
Так показывайте что нашли. Так кто у разных библиотек разные тонкости вызова функций методов.

И вообще на Delphi было-бы проще написать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 10.12.2019, 01:28   #3
lamer_
Пользователь
 
Регистрация: 03.12.2019
Сообщений: 15
По умолчанию

А как мне два одномерных массива [х] и [у] объединить в один двумерный [x][y]?
Более-менее адекватный код, в котором я всё равно не смог разобраться:
Код:
def jarvismarch(A):
  n = len(A)
  P = range(n)
  # start point
  for i in range(1,n):
    if A[P[i]][0]<A[P[0]][0]: 
      P[i], P[0] = P[0], P[i]  
  H = [P[0]]
  del P[0]
  P.append(H[0])
  while True:
    right = 0
    for i in range(1,len(P)):
      if rotate(A[H[-1]],A[P[right]],A[P[i]])<0:
        right = i
    if P[right]==H[0]: 
      break
    else:
      H.append(P[right])
      del P[right]
  return H
Ну, у меня задача написать на C++
lamer_ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
алгоритм Джарвиса и Грэхэма. срочно! АндрейПершин C# (си шарп) 2 17.12.2013 23:14
Разветвляющийся алгоритм,циклический алгоритм и Многомерные массивы (Pascal) TrapperPTZ Помощь студентам 1 26.01.2012 08:58
Разработайте алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм. iamhated Помощь студентам 1 15.01.2012 16:24
Разработайте алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм iamhated Помощь студентам 1 14.01.2012 16:22
Обход Джарвиса Чайник.ру Помощь студентам 0 06.06.2011 21:35