Copyright | (c) 2017 Jeffrey Rosenbluth |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | jeffrey.rosenbluth@gmail.com |
Safe Haskell | None |
Language | Haskell2010 |
Recipes for the 17 wallpaper groups.
For more detailed descriptions of the various symmetry groups see: https://en.wikipedia.org/wiki/Wallpaper_group and "Creating Symmetry" by Frank A. Farris, 2015 Princeton University Press, Appendices A and B
The color wheel used for all of the images:
placed side by side with it's negative, that's where the purples come from.
- genericLattice :: RealFloat a => a -> a -> Int -> Int -> Recipe a
- p1 :: RealFloat a => a -> a -> [Coef a] -> Recipe a
- p2 :: RealFloat a => a -> a -> [Coef a] -> Recipe a
- rhombicLattice :: RealFloat a => a -> Int -> Int -> Recipe a
- cm :: RealFloat a => a -> [Coef a] -> Recipe a
- cmm :: RealFloat a => a -> [Coef a] -> Recipe a
- rectangularLattice :: RealFloat a => a -> Int -> Int -> Recipe a
- pm :: RealFloat a => a -> [Coef a] -> Recipe a
- pg :: RealFloat a => a -> [Coef a] -> Recipe a
- pmm :: RealFloat a => a -> [Coef a] -> Recipe a
- pmg :: RealFloat a => a -> [Coef a] -> Recipe a
- pgg :: RealFloat a => a -> [Coef a] -> Recipe a
- squareLattice :: RealFloat a => Int -> Int -> Recipe a
- p4 :: RealFloat a => [Coef a] -> Recipe a
- p4m :: RealFloat a => [Coef a] -> Recipe a
- p4g :: RealFloat a => [Coef a] -> Recipe a
- hexagonalLattice :: RealFloat a => Int -> Int -> Recipe a
- p3 :: RealFloat a => [Coef a] -> Recipe a
- p31m :: RealFloat a => [Coef a] -> Recipe a
- p3m1 :: RealFloat a => [Coef a] -> Recipe a
- p6 :: RealFloat a => [Coef a] -> Recipe a
- p6m :: RealFloat a => [Coef a] -> Recipe a
- enm :: RealFloat a => Int -> Int -> a -> a -> Complex a
- tnm :: RealFloat a => Int -> Int -> a -> a -> Complex a
- wnm :: RealFloat a => Int -> Int -> a -> a -> Complex a
Wallpaper Groups
Generic Lattice
Lattice vectors: 1, xi + i * eta.
p1 :: RealFloat a => a -> a -> [Coef a] -> Recipe a Source #
The symmetry group with translations only.
p2 :: RealFloat a => a -> a -> [Coef a] -> Recipe a Source #
The symmetry group with four rotational centers of order 2, 180 degree rotational symmetry.
Rhombic (Centered) Lattice
Lattice vectors: 1/2 + i * b, 1/2 - i * b.
rhombicLattice :: RealFloat a => a -> Int -> Int -> Recipe a Source #
Rhombic Lattice for creating symmmetry about the center.
cm :: RealFloat a => a -> [Coef a] -> Recipe a Source #
Reflection about the horizontal axis plus horizontal glide reflection.
cmm :: RealFloat a => a -> [Coef a] -> Recipe a Source #
Rotaion and Reflection about the horizontal axis in addition to translation invariance about the center of the lattice.
Rectangular Lattice
Lattice vectors: 1, i * l.
rectangularLattice :: RealFloat a => a -> Int -> Int -> Recipe a Source #
Rectangular Lattice for creating symmetry with no rotational symmetry.
pg :: RealFloat a => a -> [Coef a] -> Recipe a Source #
Glide reflection in the horizontal direction.
pmm :: RealFloat a => a -> [Coef a] -> Recipe a Source #
Reflection about the horizontal and vertical axis in addition to 2-fold symmetry.
pmg :: RealFloat a => a -> [Coef a] -> Recipe a Source #
Glide Reflection about the horizontal axis in addition to 2-fold symmetry.
pgg :: RealFloat a => a -> [Coef a] -> Recipe a Source #
Glide Reflection about the line x=1/4 in addition to 2-fold symmetry.
Square Lattice
Lattice vectors: 1, i.
squareLattice :: RealFloat a => Int -> Int -> Recipe a Source #
Square Lattice for creating 4-fold symmetry.
p4m :: RealFloat a => [Coef a] -> Recipe a Source #
Reflection along the diagonal of the square in addition to 4-fold symmetry.
p4g :: RealFloat a => [Coef a] -> Recipe a Source #
Glide symmetry about the diagonal of the sqaure in addition to 4-fold symmetry.
Hexagonal Lattice
Lattice vectors: 1, (-1 + i * sqrt(3)) // 2.
hexagonalLattice :: RealFloat a => Int -> Int -> Recipe a Source #
Hexagonal Lattice for creating 3-fold symmetry.
p31m :: RealFloat a => [Coef a] -> Recipe a Source #
Reflection about the horizontal axis in addition to 3-fold symmetry.
p3m1 :: RealFloat a => [Coef a] -> Recipe a Source #
Reflction about the vertical axis in addtion to 3-fold symmetry.
p6m :: RealFloat a => [Coef a] -> Recipe a Source #
60 degree Rotation and reflection about the horizontal in addtion to 3-fold symmetry.
Wave Functions
enm :: RealFloat a => Int -> Int -> a -> a -> Complex a Source #
Periodic waves with respect to two translations. A Fourier vector.