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)

enter image description here

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:

  1. https://cfwebprod.sandia.gov/cfdocs/ccim/docs/coarsening.pdf

  2. http://tetra.mech.ubc.ca/anslab/publications/coarsen.pdf

  3. 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

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -