я написал реализацию алгоритма сканирования выпуклой оболочки Грэма и для тестовых данных я использовал точекВыпуклый корпус Недоразумение?
[(2.0,2.0),(4.0,2.0),(0.5,2.5),(3.0,3.5),(1.0,4.0),(0.0,4.0),(1.0,1.0),(3.0,2.5),(4.0,4.0),(3.5,1.5),(0.5,1.0)]
Согласно моей программе выпуклой оболочкой является
[(0.0,4.0),(1.0,4.0),(4.0,4.0),(3.0,2.5),(4.0,2.0),(3.5,1.5),(1.0,1.0),(0.5,1.0)]
Однако, я ожидал, что выпуклую оболочка для быть
Я попробовал мой набор точек с https://github.com/shadwstalkr/GrahamScanDemo/, а также, и это дает такое же решение, как хорошо. После долгих жалоб и ворчаний я читал в википедии, что «Объект выпуклый, если для каждой пары точек внутри объекта каждая точка на отрезке прямой, которая их соединяет, также находится внутри объекта».
После извлечения моих очков и корпуса. Похоже, что моя программа создала объект внутри этого определения, однако не означает ли это, что просто сортировка по углу даст выпуклый корпус, как и без каких-либо точек в корпусе?
Неужели я не понимаю, что такое выпуклый корпус, и я свяжусь с тем, чтобы решить другую проблему, или как моя реализация, так и неверная интерпретация?
Откуда у вас были очки ожидания? – Blender
Это то, что дает моя интуиция и метафоры «резиновой ленты». –