algorithm - inverse task of tessellation -
as input have set of triangles form concave mesh holes. each triangle consist of 3 vertices: (vi,vj,vk),... no adjacency information provided. algorithm have "union" set of triangles same normal polygon. output (pi,pj,pk,...,ps),...
for example(see picture below), let have mesh consist of triangles
(v0,v1,v4), (v1,v3,v4), (v1,v2,v3)
(v2,v6,v4), (v6,v5,v4).
as output have:
(p0,p1,p4)
(p1,p2,p3,p4)
i'm looking efficient algorithm solves problem described above. suggestion, tips or articles appreciated.
look @ adaptive mesh coarsening algorithms. these typically used in advanced software computational fluid dynamics (ansys cfx, cd-adapco star ccm+ etc.) / structural dynamics (anasys et al.). automatic refinement , coarsening of given mesh advantageous.
some free papers @ on subject, give strong starting point are:
https://cfwebprod.sandia.gov/cfdocs/ccim/docs/coarsening.pdf
http://www.cs.cmu.edu/~glmiller/publications/mitate98.pdf (this mathematical)
additional google searches in area of adaptive mesh refinement algorithms reveal similar papers on subject.
edit. basic , established method adaptive mesh coarsing edge collapse method involves reducing edge single vertex , thereby removing 2 elements. li x., shephard m.s., beall m.w. “3-d anisotropic mesh adaptation mesh modifications.” computer methods in applied mechanics , engineering, 2004. has great coarsening algorithm defined in pseudo-code as
for edge in short edge list vertex bounds current edge if vertex not yet tagger append vertex dynamic list tag vertex in dynamic list end if end end while vertices not tagged processed in dynamic list unprocessed vertex vi list ej , shortest mesh edge in transformed space connected vi if transformed length ej greater llow remove vi dynamic list else evaluate edge collapse operation of collapsing ej vi removed if edge collapse create edge longer lmax evaluate relocated vertex vi else if edge collapse lead at/inverted elements evaluate swaps(s)/collapse compound operation end if if local mesh modication determined tag neighbouring vertices of vi in dynamic list unprocessed apply local mesh modication remove vi dynamic list if collapse else tag vi processed end if end if end while
this taken impressive masters thesis have used in past. can found here
i hope helps.
Comments
Post a Comment