Например, когда K = 3, три вершины симплекса равны [1,0,0 ], [0,1,0] и [0,0,1]. Если вы разделите это на самом грубом уровне, используя барицентрическое подразделение, вы получите следующее:
- Найдите среднюю точку каждого ребра: [1/2, 1/2 , 0], [1/2, 0, 1/2],[0, 1/2, 1/2]
- Найдите барицентрическую точку: [1/3, 1/ 3, 1/3]
- [[[1,0,0], [1/2, 1/2, 0] [1/3, 1/3, 1/3]]]< /li>
[[[1,0,0], [1/2, 0, 1/2] [1/3, 1/3, 1/3]]] - [[[0,1,0], [1/2, 1/2, 0] [1/3, 1/3, 1/3]]]
- [[[0,1,0], [0, 1/2, 1/2] [1/3, 1/3, 1/3]]]
- [[[0,0,1], [1/2, 0 ,1/2] [1/3, 1/3, 1/3]]]
- [[ [0,0,1], [0, 1/2, 1/2] [1/3, 1/3, 1/3]]]
Я пытался разработать алгоритм, который отвечает на эту проблему, однако застрял в логике. Каждый субсимплекс будет содержать вершину одного из измерений (K-1), например в данном случае точка на ребре и на грани. Поэтому я попробовал комбинаторный подход, но не смог расширить его до N измерений таким образом, чтобы его можно было запрограммировать в функцию.
Кто-нибудь знает соответствующий пакет (или математическое программное обеспечение?) это может помочь ответить на этот вопрос или о том, как записать логику в функцию Python.
Подробнее здесь: https://stackoverflow.com/questions/784 ... ubdivision