5/30/2023 0 Comments White grey tessellation triangleChepoi V., Estellon B., Packing and covering δ-hyperbolic spaces by balls, In: Approximation, Randomization, and Combinatorial Optimization, Lecture Notes in Comput. Math., 115, Academic Press, Orlando, 1984 Search in Google Scholar Chavel I., Eigenvalues in Riemannian Geometry, Pure Appl. Carballosa W., Rodríguez J.M., Sigarreta J.M., Villeta M., On the hyperbolicity constant of line graphs, Electron. Carballosa W., Portilla A., Rodríguez J.M., Sigarreta J.M., Gromov hyperbolicity of planar graphs and CW complexes, preprint available at Search in Google Scholar Carballosa W., Pestana D., Rodríguez J.M., Sigarreta J.M., Distortion of the hyperbolicity constant of a graph, Electron. Brinkmann G., Koolen J.H., Moulton V., On the hyperbolicity of chordal graphs, Ann. Bonk M., Heinonen J., Koskela P., Uniformizing Gromov Hyperbolic Spaces, Astérisque, 270, Paris, 2001 Search in Google Scholar Bermudo S., Rodríguez J.M., Sigarreta J.M., Vilaire J.-M., Gromov hyperbolic graphs, preprint available at Search in Google Scholar Bermudo S., Rodríguez J.M., Sigarreta J.M., Tourís E., Hyperbolicity and complement of graphs, Appl. Bermudo S., Rodríguez J.M., Sigarreta J.M., Computing the hyperbolicity constant, Comput. Balogh Z.M., Buckley S.M., Geometric characterizations of Gromov hyperbolicity, Invent. (Note, the ear clipping is based on libgdx with spatial optimizations to the intersection checks, to scale up to thousands of sides without such a significant performance hit, since clipping every ear was checking all-other-points each time).Alonso J., Brady T., Cooper D., Ferlini V., Lustig M., Mihalik M., Shapiro M., Short H., Notes on word hyperbolic groups, In: Group Theory from a Geometrical Viewpoint, Trieste, March 26–April 6, 1990, World Scientific, River Edge, 1991, 3–63 Search in Google Scholar Polyfill_2d_beautify.c (adjusts topology for more even results)Īlso made a port of polyfill_2d.c to Rust Which take and return POD's ( float array, filling in a uint array): (Note that the reasons 2 steps are used here is that calculating more even distribution isn't always needed).įull disclosure, I ran into this problem myself, when I needed a fast tessellator for polygons for a real-time modeling application. This is 2 steps, so it may be more efficient to iteratively clip the 'best' ear to get more even results, so you don't have to re-arrange topology as a second pass (YMMV). Rotate edges between triangles where the area divided by the perimeter is smaller once the edge is rotated into the new state.This can be done for concave/convex polygons using a simple ear-clipping method (assuming we don't need to support holes). Is this of any help whatsoever? Should work for any polygon (convex/concave/with holes in them), I think, given that what exactly you do for intersecting squares/triangles handles such polygons. For these triangles you do the same as with the squares in the above pseudocode, except for the fact that you don't need to split the ones that cleanly inside your polygon as they are already triangles themselves. If you want as close to 60° as possible, you should start with tessellating the surface of your polygon with hexagons (with the size of the hexagon being your "amount of tessellation") and then checking each of the six 60°/60°/60° triangles that make up these hexagons. It will give you triangles with 45°/45°/90° angles though. Exact cases for the intersection squares are left as an exercise to the reader.Each resulting square is either cleanly outside your polygon (=ignore), cleanly inside your polygon (=split into two triangles of resulting tesselation along the diagonal) or intersects your polygon.Subdivide each square into four children (quad-tree like), where the number of iterations determines your "amount of tessellation".
0 Comments
Leave a Reply. |