Skip to content

Repository files navigation

react-hex Build Status

draw svg hexagonal grid with react

Install

$ npm i react-hex

Example

importReactfrom'react';importReactDomfrom'react-dom';importHex,{gridPoints}from'react-hex';constHexes=()=>{consthexes=gridPoints('pointy-topped',100,100,10,25,25).map(({ props })=>(<Hex{...props}fill="white"stroke="black"/>));return(<svgwidth="500"height="500">{hexes}</svg>);};ReactDom.render(<Hexes/>);document.getElementById('example'));

hexes

More examples, see Storybook.

Documents

<Hex type={} x={} y={} size={} /> (default exported)

Main React component of hex.

namevalue typedescription
typePropTypes.oneOf(['pointy-topped', 'flat-topped']).isRequiredhexagon type
xPropTypes.number.isRequiredhexagon's center coordinate x
yPropTypes.number.isRequiredhexagon's center coordinate y
sizePropTypes.number.isRequiredhexagon edge length
importHexfrom'react-hex';<Hextype="pointy-topped"x={0}y={0}size={50}/>

gridPoint(oType, oX, oY, size, gridX, gridY)

return: { props: { type, x, y, size }, gridX, gridY }

Helper function to calculate hex location in grid. props field in returning object of this function can use for props of Hex component.

(prefix o means original.)

namevalue typedescription
oType'pointy-topped' or 'flat-topped'original hexagon type
oXnumberoriginal hexagon's center coordinate x
oYnumberoriginal hexagon's center coordinate y
sizenumberhexagon edge length
gridXnumbercoordinate x in hexagonal grid system
gridYnumbercoordinate y in hexagonal grid system
importTriangle,{gridPoint}from'react-hex';const{ props }=gridPoint('pointy-topped',0,0,50,3,4);

gridPoints(oDirection, oX, oY, size, girdWidth, gridHeight)

return: [ { props: { type, x, y, size }, gridX, gridY }, ... ]

Helper function to bulk calculate hexes location of grid.

(prefix o means original.)

namevalue typedescription
oType'pointy-topped' or 'flat-topped'original hexagon type
oXnumberoriginal hexagon's center coordinate x
oYnumberoriginal hexagon's center coordinate y
sizenumberhexagon edge length
gridWidthnumbergrid size of x
gridHeightnumbergrid size of y
importHex,{gridPoints}from'react-hex';consttriangles=gridPoints('pointy-topped',100,100,50,5,5).map(({ props, gridX, gridY })=(<Hexkey={`${gridX}-${gridY}`}{...props}/>));

pointy topped grid coordinate x,y

pointy-topped

flat topped grid coordinate x,y

flat-topped

License

MIT

Releases

Packages

Used by

Contributors

Languages