wallpaper-0.1.0.0: A library and executable for creating wallpaper, frieze, and rosette patterns.

Copyright(c) 2017 Jeffrey Rosenbluth
LicenseBSD-style (see LICENSE)
Maintainerjeffrey.rosenbluth@gmail.com
Safe HaskellNone
LanguageHaskell2010

Recipes.Wallpaper

Contents

Description

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.

Synopsis

Wallpaper Groups

Generic Lattice

Lattice vectors: 1, xi + i * eta.

genericLattice :: RealFloat a => a -> a -> Int -> Int -> Recipe a Source #

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.

pm :: RealFloat a => a -> [Coef a] -> Recipe a Source #

Reflection about the horizontal axis.

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.

p4 :: RealFloat a => [Coef a] -> Recipe a Source #

4-fold symmetry only.

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.

p3 :: RealFloat a => [Coef a] -> Recipe a Source #

3-fold symmetry only.

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.

p6 :: RealFloat a => [Coef a] -> Recipe a Source #

60 degree Rotation 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.

tnm :: RealFloat a => Int -> Int -> a -> a -> Complex a Source #

Wave packets to create 2-fold rotational symmetry.

wnm :: RealFloat a => Int -> Int -> a -> a -> Complex a Source #

Wave packets to create 3-fold rotational symmetry.