Subject | Hash | Author | Date (UTC) |
---|---|---|---|
voronoi.ConvexSpline: little fix of np.sign() for better sleep | 968f649e54d97abd596cd60749872fa3ef788c06 | I am | 2022-10-19 06:28:46 |
implement even more optimized Convex.. now ConvexSpline class | c08511aecb32b880e73c9f10d07feff4dc588e8b | I am | 2022-10-19 04:11:13 |
voronoi: WIP | cbb61d4544367a67c9a5c3fe6d64a9dc284eb364 | I am | 2022-10-18 05:05:44 |
voronoi: WIP | e9c247fef30cfb678bad9b955d6f6a94a0ff61e7 | I am | 2022-10-18 01:02:30 |
candynodex: hotfix to support numpy masking indexing | f359123b72a3d998d5eed4b9e611a5e402a18c8d | I am | 2022-10-17 09:02:33 |
add new lightweight candynodes module to replace old heavy ugly candybox | ca97509f47c100df90e1e06d82ed7c759627bfd0 | I am | 2022-10-17 06:31:33 |
qt_gui: move CandyBox creating to the individual DiceBox widgets | 29253625129219b5e550f82cae3da0e53ef5bd47 | I am | 2022-10-16 03:17:55 |
voronoi: WIP | 4855190869e06df740cc05c64e8b27b2c3c5a88d | I am | 2022-10-15 22:46:51 |
voronoi: WIP | 0298b3a0563587ea4fc24fa99b51d2e01d517203 | I am | 2022-10-15 20:00:25 |
voronoi: WIP | 4b80757fa26e3d40dceac888480ec3d814f6abc9 | I am | 2022-10-15 17:30:11 |
voronoi: WIP | 7cadd1d01d7f4bc3f51e785fe6ebf8cae6ff839a | I am | 2022-10-15 03:12:54 |
voronoi: clean up and comment out ContactSolver | 543f8482a925ff6cf8485b9be616b5bd3c714d13 | I am | 2022-10-14 04:24:40 |
qt_gui.qt_gui: use ConvexSolver instead of ContactSolver (which did not work correctly) | c1e49a9b2c3cc13886d317b460d7598f661cf216 | I am | 2022-10-14 04:01:06 |
voronoi: add fantastic ConvexSolver | 2853826e5ef1abc79d3ac2fb8289b13c45211a31 | I am | 2022-10-14 04:00:14 |
qt_gui.qt_plot: add (finally!) Numbers class | 4cdc658c0fcc857c23c0e39e91e7a1ce5e1b30a1 | I am | 2022-10-13 06:23:46 |
qt_gui.qt_gui: show contacts in distance matrix. Based on ContactSolver for now | 21bd6101888d9f06d7d6a7c6ba2732ff30fdd68d | I am | 2022-10-13 04:16:41 |
voronoi: ContactSolver is ready. Ale je to na nic. Pomalá, potvora | 28e2442b0101eac2407ed4a69c6f757ffd579cf1 | I am | 2022-10-13 04:14:59 |
voronoi: add some preliminary lines of ContactSolver. WIP | 6a203b278c9fa6de7da75c402c80f78d40164fdf | I am | 2022-10-12 23:38:59 |
voronoi: přídat pár těžkých smyček. WIP | 7b0ffb602ae00ab2f12dc98d34c35ec20afa3cc4 | I am | 2022-10-12 00:13:36 |
add to repo voronoi module. WIP | f43768c22d88fac7c7095be02d8c9b5620153976 | I am | 2022-10-11 03:29:49 |
File | Lines added | Lines deleted |
---|---|---|
wellmet/voronoi.py | 6 | 4 |
File wellmet/voronoi.py changed (mode: 100644) (index 8624ad2..fbb8d26) | |||
... | ... | class ConvexSpline: | |
187 | 187 | a = basis[:, 1] | a = basis[:, 1] |
188 | 188 | ##č nejak tuším, že v poslední dimenzi | ##č nejak tuším, že v poslední dimenzi |
189 | 189 | ##č znaménko normál musí být jednotné | ##č znaménko normál musí být jednotné |
190 | a = a * -np.sign(a[-1]) | ||
190 | a = a * (1 - 2 * (a[-1] > 0)) # a = a * -np.sign(a[-1]) | ||
191 | 191 | b = X @ a | b = X @ a |
192 | 192 | ||
193 | 193 | if np.max(b) - np.max(b[[i, j]]) < 1e-7: | if np.max(b) - np.max(b[[i, j]]) < 1e-7: |
... | ... | class ConvexSpline: | |
198 | 198 | idx = np.argmax(b) | idx = np.argmax(b) |
199 | 199 | #č nahradíme v jedničce naš odhad normálního vektoru | #č nahradíme v jedničce naš odhad normálního vektoru |
200 | 200 | #č nalezenou překažkou. | #č nalezenou překažkou. |
201 | #č Zbytek bazí je jíž byl ortogonální | ||
201 | #č Zbytek bazí jíž byl ortogonální | ||
202 | 202 | #č k té naši pomyšlené normále | #č k té naši pomyšlené normále |
203 | 203 | basis[:, 1] = X[idx] - X[i] | basis[:, 1] = X[idx] - X[i] |
204 | 204 | ||
... | ... | class ConvexSpline: | |
211 | 211 | a = basis[:, -1] | a = basis[:, -1] |
212 | 212 | #č nejak tuším, že v poslední dimenzi | #č nejak tuším, že v poslední dimenzi |
213 | 213 | #č znaménko normál musí být jednotné | #č znaménko normál musí být jednotné |
214 | a = a * -np.sign(a[-1]) | ||
214 | a = a * (1 - 2 * (a[-1] > 0)) # a = a * -np.sign(a[-1]) | ||
215 | 215 | b = X @ a | b = X @ a |
216 | 216 | if np.max(b) - np.max(b[[i, j]]) < 1e-7: | if np.max(b) - np.max(b[[i, j]]) < 1e-7: |
217 | 217 | return True | return True |
... | ... | class ConvexSpline: | |
224 | 224 | a = basis[:, -1] | a = basis[:, -1] |
225 | 225 | #č nejak tuším, že v poslední dimenzi | #č nejak tuším, že v poslední dimenzi |
226 | 226 | #č znaménko normál musí být jednotné | #č znaménko normál musí být jednotné |
227 | a = a * -np.sign(a[-1]) | ||
227 | a = a * (1 - 2 * (a[-1] > 0)) # a = a * -np.sign(a[-1]) | ||
228 | 228 | b = X @ a | b = X @ a |
229 | 229 | return np.max(b) - np.max(b[[i, j]]) < 1e-7 | return np.max(b) - np.max(b[[i, j]]) < 1e-7 |
230 | 230 | ||
... | ... | class ContactVoronoi: | |
663 | 663 | #č To ale nic neříká o hustotách | #č To ale nic neříká o hustotách |
664 | 664 | mask = np.isfinite(w) | mask = np.isfinite(w) |
665 | 665 | nodes.w = w * mask | nodes.w = w * mask |
666 | #č p_couple není finální pravděpodobnost | ||
667 | #č bodíky ještě musejí projít konvexní obálkou | ||
666 | 668 | nodes.p_couple = np.sum(w[mask]) | nodes.p_couple = np.sum(w[mask]) |
667 | 669 | #č a doporučíme (dočasně) k integraci | #č a doporučíme (dočasně) k integraci |
668 | 670 | self._recommend_to_integration(idx) | self._recommend_to_integration(idx) |