I sh, чтобы найти грани выпуклой оболочки, образованной набором точек. Для этого я использую scipy.spatial.ConvexHull
. Код идет так, как показано ниже. Сначала я читаю координаты из файла, а затем генерирую выпуклую оболочку. Для дальнейшего анализа мне нужны фазовые уравнения, и вот в чем проблема.
from scipy.spatial import ConvexHull
# Reading coordinates from a file #
coords = ReadCoordsFromFile('input.txt') # Not giving the actual code here for brevity purposes
# Generating the Convex Hull
hull = ConvexHull(coords)
facet_eqns = hull.equations
В большинстве случаев уравнения в фасете повторяются, и я их фильтрую. Но иногда, уравнение аспекта становится почти подобным, отличаясь очень маленьким количеством. Это добавляет дополнительные ненужные грани к корпусу.
Я хочу знать, существует ли независимый от регистра способ избавления от таких граней.
Заранее спасибо!
Воспроизводимый пример -
ordins = `
[[-6.60254550e-03 -7.69353045e-04 -1.98149963e-03]
[ 5.06220108e-04 3.35012920e-03 -5.06675385e-03]
[-7.74151410e-03 1.75719365e-03 1.57460691e-04]
[ 6.03569807e-04 -5.75604405e-03 -4.05978234e-03]
[ 2.82378489e-03 -6.77887230e-03 -2.06446124e-03]
[ 3.25570167e-03 -7.42129666e-04 -5.60860572e-03]
[ 2.97485293e-03 7.68755908e-03 -1.00624649e-03]
[ 1.27972094e-03 -6.68584615e-03 -3.06184361e-03]
[ 6.02235935e-04 -2.09525617e-03 6.90553336e-03]
[-4.38951446e-03 -4.25464498e-03 3.35771375e-03]
[-6.18277723e-03 2.03346003e-03 -2.45627057e-03]
[ 8.49286010e-03 -7.61449715e-04 2.88487626e-03]
[ 3.73787630e-03 7.24595326e-03 -1.52092953e-03]
[ 3.61661606e-03 7.74554087e-03 -4.41399460e-04]
[-4.42926277e-03 -4.45049336e-03 3.01770051e-03]
[-5.01554440e-03 -3.91183169e-03 2.84478883e-03]
[ 7.51008512e-03 -3.98009766e-04 -3.23933077e-03]
[ 8.05231830e-03 -1.22404083e-03 -2.38878456e-03]
[ 6.23938000e-03 -3.27222428e-03 4.60680728e-03]
[ 1.11818929e-03 -7.05549069e-03 -1.77127887e-03]
[ 4.41826702e-03 6.98720881e-03 2.68811939e-03]
[-6.73807857e-03 3.26980018e-03 7.52997924e-04]
[-2.16800091e-04 4.16847999e-03 5.59880501e-03]
[-6.92489159e-03 2.66864455e-03 -1.14865183e-03]
[ 3.28796997e-03 7.28241775e-03 -1.73652049e-03]
[-6.27371087e-03 3.76025385e-03 -1.44614204e-04]
[-7.89803124e-03 -6.10276064e-04 2.97797889e-04]
[ 2.69908556e-03 -6.91921797e-03 -1.60263538e-03]
[-7.90259196e-03 -5.81947945e-04 2.33211036e-04]
[-7.87863883e-03 1.95352899e-05 2.43746195e-04]
[ 8.51287062e-03 -8.26837157e-04 2.77839125e-03]
[ 8.46229697e-03 -8.82210683e-04 2.93165918e-03]]
`
facet_eqns =`
[[-0.99547754 0.03811927 0.08701373 -0.00786496]
[-0.34820479 0.88669251 0.30418714 -0.00547474]
[ 0.45730953 -0.47427934 -0.75228126 -0.00606009]
[-0.34297532 -0.10686601 -0.93324573 -0.00419689]
[ 0.40888081 0.23729795 0.88119587 -0.00583417]
[-0.59972262 -0.74629313 -0.28875482 -0.00510633]
[-0.34769023 0.88696245 0.30398867 -0.00547836]
[-0.34819791 0.88671157 0.30413946 -0.00547477]
[ 0.42309192 0.39238851 -0.81671567 -0.00566689]
[ 0.42307202 0.39239261 -0.816724 -0.00566687]
[-0.36571287 0.73847047 -0.56649401 -0.00515913]
[-0.34828332 0.88663177 0.30427427 -0.00547499]
[-0.34319279 -0.10667459 -0.93318768 -0.00419713]
[-0.34309079 -0.10686259 -0.93320367 -0.00419663]
[ 0.40889478 0.23731142 0.88118576 -0.00583417]
[ 0.4089428 0.23742134 0.88113387 -0.00583432]
[ 0.40938397 0.23763988 0.88087006 -0.00583709]
[ 0.95427194 -0.13898203 0.26466781 -0.00897386]
[ 0.73015397 -0.68325698 -0.00592294 -0.00676419]
[-0.60216705 0.08665418 0.79365352 -0.0049394 ]
[ 0.02171863 -0.86729384 0.49732253 -0.00526456]
[ 0.02175743 -0.86742362 0.49709444 -0.00526418]
[-0.60198967 0.08687909 0.79376348 -0.00493803]
[-0.6018371 0.0869213 0.79387455 -0.00493756]
[-0.60187033 0.08694516 0.79384674 -0.00493751]
[-0.36641969 0.73880629 -0.56559869 -0.0051587 ]
[-0.3663782 0.73814409 -0.56648946 -0.00515767]
[-0.36623699 0.73846202 -0.56616633 -0.00515717]
[-0.80962233 0.57782042 -0.1031273 -0.007267 ]
[-0.86004166 0.04253309 -0.50844792 -0.00665323]
[-0.85988325 0.04261124 -0.50870923 -0.00665264]
[ 0.42314798 0.39241149 -0.81667559 -0.00566718]
[ 0.25611795 0.88790448 -0.38213772 -0.00797226]
[ 0.25546327 0.88773686 -0.38296447 -0.00796985]
[ 0.45719969 -0.47471236 -0.75207487 -0.00606168]
[-0.59972064 -0.7462729 -0.28881121 -0.00510629]
[-0.59972633 -0.74623501 -0.28889726 -0.00510629]
[-0.59972292 -0.74622397 -0.28893286 -0.00510633]
[ 0.4573452 -0.4743339 -0.75222518 -0.0060602 ]
[ 0.4573857 -0.47443248 -0.75213838 -0.00606044]
[ 0.88299547 0.45540022 -0.11370858 -0.00682436]
[ 0.72777617 -0.68570699 -0.01215629 -0.00672866]
[ 0.72776167 -0.68572223 -0.01216451 -0.00672858]
[ 0.88051699 0.46012283 -0.1139158 -0.00679911]
[ 0.88047411 0.46017598 -0.11403245 -0.00679898]
[ 0.88046824 0.46017968 -0.11406285 -0.006799 ]
[ 0.88042561 0.46018815 -0.11435742 -0.00679935]
[ 0.72759244 -0.68590501 -0.01198179 -0.00672896]
[ 0.02175057 -0.86744916 0.49705016 -0.00526419]
[ 0.02176358 -0.8674401 0.4970654 -0.00526413]
[ 0.11049547 -0.95903305 -0.26085697 -0.00735205]
[ 0.11107546 -0.95882163 -0.26138731 -0.00735301]
[-0.60310366 0.08528014 0.79309096 -0.00494747]
[-0.67718357 -0.60058965 0.42510526 -0.00695518]
[-0.60263425 -0.74559404 -0.28446702 -0.00512993]
[-0.60079346 -0.74606788 -0.28710614 -0.00511504]
[-0.60208369 0.08692403 0.79368725 -0.00493876]
[-0.8096951 0.57772511 -0.10309002 -0.00726721]
[-0.86349445 0.04318886 -0.50250579 -0.00668152]
[-0.86028382 0.04278931 -0.50801655 -0.0066551 ]]
`
Как видите, последние 2 аспекта почти одинаковы. Есть множество подсчетов таких случаев. Это увеличивает число граней до 60, в то время как есть только 18 граней.