grid_space 1.0.1 copy "grid_space: ^1.0.1" to clipboard
grid_space: ^1.0.1 copied to clipboard

Common classes to convert between square grids and hexagonal grids.

Common classes to create and convert between square grids and hexagonal grids.

In grid space, every cell has a size of 1 unit in width and height. Each grid can define a custom "world space". Conversion between the unit grid and a grid's world space is achieved using either gridToWorldSpace( point ) or worldToGridSpace( point ).

final grid = Grid.square(
    4,                // The grid area should span 4 tiles in each row
    zero: Point(0, 0) // Grid origin in world space
    size: Point(4, 4) // Grid size in world space
);

// Alternatives with hexagonal grid
Grid.hexagonal(4, horizontal: true);
Grid.hexagonal(4, horizontal: false);

// Examples: Snapping circles (center, diameter) to the Grid
final blue   = grid.gridSnapCentered( Point(0.5, 0.5), 1 );
final green  = grid.gridSnapCentered( Point(1,   2  ), 2 );
final pink   = grid.gridSnapCentered( Point(2.5, 1.5), 1 );
final orange = grid.gridSnapCentered( Point(1.5, 3.5), 1 );

// Convert to your custom world space
final worldPosition = grid.gridToWorldSpace(blue);

The following figure exemplifies how the grid space is laid out in each grid type, as well as how the center of a circle can be snapped to the nearest grid point. Figure showing how grid space and world space correlate in square grids and horizontal or vertical hex grids Transformations in a square grid, horizontal hex grid and vertical hex grid.

0
likes
150
points
43
downloads

Publisher

verified publishertheoretically.online

Weekly Downloads

Common classes to convert between square grids and hexagonal grids.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

More

Packages that depend on grid_space