[QGHG-it-dev-list] Zadatak 18 - Pachner-ov potez 3-u-1 (2-dim kompleks)
Marko Vojinovic
vmarko at ipb.ac.rs
Tue Mar 1 03:57:57 CET 2022
Implementirati f-ju koja ce da realizuje Pachner-ov potez 3-u-1 za kompleks dimenzije D=2:
KSimplex* Pachner_move_3_to_1( KSimplex *simp, SimpComp *G );
Input: 0-simpleks simp nad kojim se vrsi potez, kompleks G.
Output: Trougao (k=2) koji se kreira potezom.
Ova f-ja predstavlja inverznu transformaciju za potez 1-u-3 iz zadatka 16. Tablice koje definisu potez su iste kao tamo, samo su zamenile redosled:
Pocetna struktura:
k=0: 1, 2, 3, 4
k=1: (1-2), (1-3), (2-3), (1-4), (2-4), (3-4)
k=2: (1-2-4), (1-3-4), (2-3-4)
Finalna struktura:
k=0: 1, 2, 3
k=1: (1-2), (1-3), (2-3)
k=2: (1-2-3)
Input f-je sada predstavlja verteks "4" koji je zajednicki za tri trougla (i koji cemo da obrisemo zajedno sa njegovim ivicama i trouglovima), a output je trougao (1-2-3) koji cemo kreirati na mestu onoga sto je obrisano. Algoritam je i ovde slican kao u zadatku 16, sa jednom vaznom dopunom na pocetku:
(1') Proveriti da li dati verteks (simp) ima tacno tri trougla kao svoje susede, i da li se ivice tih trouglova (naspramne verteksu simp) sklapaju u trougao (1-2-3) --- sam trougao jos nije instanciran, i ne smemo da ga napravimo ako ne postoje ivice (1-2), (1-3), (2-3) od kojih je svaka naspramna verteksu simp za po jedan od njegovih susednih trouglova. Ivice se "sklapaju" u trougao ako svake dve dele jedan (i samo jedan!) zajednicki verteks. Ukoliko ovaj uslov nije ispunjen, potez ne moze da se izvrsi, pa treba prijaviti warning u log i vratiti nullptr.
F-ja se testira bilo ispisivanjem tablica pomocu print_compact, ili uzastopnom primenom poteza 1-u-3 i nakon toga primenom poteza 3-u-1, koji treba da vrati kompleks u pocetno stanje (jer su ova dva poteza inverzni jedan drugom).
:-)
Marko
Dr. Marko Vojinovic
Group for Gravitation, Particles and Fields
Institute of Physics
University of Belgrade
======================
home page: www.markovojinovic.com
e-mail: vmarko at ipb.ac.rs
More information about the QGHG-it-dev-list
mailing list