ShrinkTile() static private method

This will trim back the tile using an equidistant curve. It assumes the tile is at the origin.
static private ShrinkTile ( Tile &tile, double shrinkFactor ) : void
tile Tile
shrinkFactor double
return void
Exemplo n.º 1
0
        public Tile[] FundamentalCell()
        {
            Tile template = TemplateTile();

            Tile.ShrinkTile(ref template, 0.9);

            // Generate a cell tiling.
            TilingConfig tilingConfig = new TilingConfig(Q, P);
            Tiling       poly         = new Tiling();

            poly.Generate(tilingConfig);
            m_tiles = poly.Tiles.ToList();
            //SetupTransformCircle( tile );	// Call this before transforming.
            //SetupNeighborCircle( tile );

            // Generate our cell.
            List <Tile> cellTiles = new List <Tile>();

            foreach (Tile t in poly.Tiles)
            {
                Tile temp = template.Clone();
                temp.Transform(t.Isometry.Inverse());
                cellTiles.Add(temp);
            }

            return(cellTiles.ToArray());
        }
Exemplo n.º 2
0
        public static Tile CreateBaseTile(TilingConfig config)
        {
            Polygon boundary = new Polygon(), drawn = new Polygon();

            boundary.CreateRegular(config.P, config.Q);
            drawn = boundary.Clone();

            //boundary.CreateRegular( 3, 10 );
            //drawn.CreateRegular( 3, 8 );
            //boundary.CreateRegular( 3, 7 );
            //drawn = Heart();

            //for( int i=0; i<drawn.NumSides; i++ )
            //	drawn.Segments[i].Center *= 0.1;

            // Good combos:
            // ( 5, 5 ), ( 10, 10 )
            // ( 3, 10 ), ( 3, 9 )
            // ( 6, 4 ), ( 6, 8 )
            // ( 7, 3 ), ( 7, 9 )

            Tile tile = new Tile(boundary, drawn, config.Geometry);

            Tile.ShrinkTile(ref tile, config.Shrink);
            return(tile);
        }