svg-icons 2.8.0.2 → 2.8.1.0
raw patch · 2 files changed
+158/−1 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ SvgIcons.Images.Mosaics: pentagonsMosaic :: String -> String -> Svg
Files
- src/SvgIcons/Images/Mosaics.hs +157/−0
- svg-icons.cabal +1/−1
src/SvgIcons/Images/Mosaics.hs view
@@ -33,6 +33,7 @@ , curvesMosaic , airplaneMosaic , octagonsMosaic + , pentagonsMosaic ) where import Data.List (intersperse) @@ -81,6 +82,7 @@ , (,) "curvesMosaic" curvesMosaic , (,) "airplaneMosaic" (airplaneMosaic "deepskyblue") , (,) "octagonsMosaic" (octagonsMosaic "lightgray" "chocolate") + , (,) "pentagonsMosaic" (pentagonsMosaic "deeppink" "black") ] @@ -1060,3 +1062,158 @@ l 4 0 m 1 3 l 0 4 + + + +{- | + + +Ratio between width and height is: \(w = \sqrt{3} \cdot h\) +-} +pentagonsMosaic :: String -> String -> Svg +pentagonsMosaic fillColor strkColor = + svg + ! A.viewbox (S.toValue $ "0 0 " ++ (show x0) ++ " " ++ (show y0)) + ! A.height "300px" + ! A.width (S.toValue $ (show $ 300 * sqrt 3) ++ "px") + $ do + S.defs $ + S.path + ! A.fill (S.toValue fillColor) + ! A.strokeWidth "0.15" + ! A.stroke (S.toValue strkColor) + ! A.strokeLinejoin "round" + ! A.id_ "HaskellSvgIcons-pentagonTile" + ! A.d pentagonDirs + S.g $ do + --- + pentagon + pentagon ! A.transform ((translate h0 ( 5*l0/2)) <> S.rotate 120) + pentagon ! A.transform ((translate h0 ( 5*l0/2)) <> S.rotate 60) + pentagon ! A.transform ((translate ( -h0) ( 9*l0/2)) <> S.rotate 240) + pentagon ! A.transform ((translate ( -h0) ( 9*l0/2)) <> S.rotate 300) + pentagon ! A.transform ((translate 0 ( 7*l0 )) <> S.rotate 180) + --- + pentagon ! A.transform ( S.rotate 300) + pentagon ! A.transform ((translate h0 ( 5*l0/2)) <> S.rotate 180) + pentagon ! A.transform ((translate h0 ( 5*l0/2)) ) + pentagon ! A.transform ((translate ( 2*h0) ( 5*l0 )) <> S.rotate 120) + pentagon ! A.transform ((translate ( 2*h0) ( 5*l0 )) <> S.rotate 60) + pentagon ! A.transform ((translate 0 ( 7*l0 )) <> S.rotate 240) + --- + pentagon ! A.transform ((translate ( 3*h0) ( l0/2)) <> S.rotate 120) + pentagon ! A.transform ((translate ( 3*h0) ( l0/2)) <> S.rotate 60) + pentagon ! A.transform ((translate h0 ( 5*l0/2)) <> S.rotate 240) + pentagon ! A.transform ((translate h0 ( 5*l0/2)) <> S.rotate 300) + pentagon ! A.transform ((translate ( 2*h0) ( 5*l0 )) <> S.rotate 180) + pentagon ! A.transform ((translate ( 2*h0) ( 5*l0 )) ) + pentagon ! A.transform ((translate ( 3*h0) (15*l0/2)) <> S.rotate 120) + --- + pentagon ! A.transform ((translate ( 3*h0) ( l0/2)) <> S.rotate 180) + pentagon ! A.transform ((translate ( 3*h0) ( l0/2)) ) + pentagon ! A.transform ((translate ( 4*h0) ( 3*l0 )) <> S.rotate 120) + pentagon ! A.transform ((translate ( 4*h0) ( 3*l0 )) <> S.rotate 60) + pentagon ! A.transform ((translate ( 2*h0) ( 5*l0 )) <> S.rotate 240) + pentagon ! A.transform ((translate ( 2*h0) ( 5*l0 )) <> S.rotate 300) + pentagon ! A.transform ((translate ( 3*h0) (15*l0/2)) <> S.rotate 180) + --- + pentagon ! A.transform ((translate ( 3*h0) ( l0/2)) <> S.rotate 240) + pentagon ! A.transform ((translate ( 3*h0) ( l0/2)) <> S.rotate 300) + pentagon ! A.transform ((translate ( 4*h0) ( 3*l0 )) <> S.rotate 180) + pentagon ! A.transform ((translate ( 4*h0) ( 3*l0 )) ) + pentagon ! A.transform ((translate ( 5*h0) (11*l0/2)) <> S.rotate 120) + pentagon ! A.transform ((translate ( 5*h0) (11*l0/2)) <> S.rotate 60) + pentagon ! A.transform ((translate ( 3*h0) (15*l0/2)) <> S.rotate 240) + --- + pentagon ! A.transform ((translate ( 6*h0) ( l0 )) <> S.rotate 120) + pentagon ! A.transform ((translate ( 6*h0) ( l0 )) <> S.rotate 60) + pentagon ! A.transform ((translate ( 4*h0) ( 3*l0 )) <> S.rotate 240) + pentagon ! A.transform ((translate ( 4*h0) ( 3*l0 )) <> S.rotate 300) + pentagon ! A.transform ((translate ( 5*h0) (11*l0/2)) <> S.rotate 180) + pentagon ! A.transform ((translate ( 5*h0) (11*l0/2)) ) + --- + pentagon ! A.transform ((translate ( 6*h0) ( l0 )) <> S.rotate 180) + pentagon ! A.transform ((translate ( 6*h0) ( l0 )) ) + pentagon ! A.transform ((translate ( 7*h0) ( 7*l0/2)) <> S.rotate 120) + pentagon ! A.transform ((translate ( 7*h0) ( 7*l0/2)) <> S.rotate 60) + pentagon ! A.transform ((translate ( 5*h0) (11*l0/2)) <> S.rotate 240) + pentagon ! A.transform ((translate ( 5*h0) (11*l0/2)) <> S.rotate 300) + pentagon ! A.transform ((translate ( 6*h0) ( 8*l0 )) <> S.rotate 180) + --- + pentagon ! A.transform ((translate ( 6*h0) ( l0 )) <> S.rotate 240) + pentagon ! A.transform ((translate ( 6*h0) ( l0 )) <> S.rotate 300) + pentagon ! A.transform ((translate ( 7*h0) ( 7*l0/2)) <> S.rotate 180) + pentagon ! A.transform ((translate ( 7*h0) ( 7*l0/2)) ) + pentagon ! A.transform ((translate ( 8*h0) ( 6*l0 )) <> S.rotate 120) + pentagon ! A.transform ((translate ( 8*h0) ( 6*l0 )) <> S.rotate 60) + --- + pentagon ! A.transform ((translate ( 8*h0) ( -l0 )) ) + pentagon ! A.transform ((translate ( 9*h0) ( 3*l0/2)) <> S.rotate 120) + pentagon ! A.transform ((translate ( 9*h0) ( 3*l0/2)) <> S.rotate 60) + pentagon ! A.transform ((translate ( 7*h0) ( 7*l0/2)) <> S.rotate 240) + pentagon ! A.transform ((translate ( 7*h0) ( 7*l0/2)) <> S.rotate 300) + pentagon ! A.transform ((translate ( 8*h0) ( 6*l0 )) <> S.rotate 180) + pentagon ! A.transform ((translate ( 8*h0) ( 6*l0 )) ) + --- + pentagon ! A.transform ((translate ( 9*h0) ( 3*l0/2)) <> S.rotate 180) + pentagon ! A.transform ((translate ( 9*h0) ( 3*l0/2)) ) + pentagon ! A.transform ((translate (10*h0) ( 4*l0 )) <> S.rotate 120) + pentagon ! A.transform ((translate (10*h0) ( 4*l0 )) <> S.rotate 60) + pentagon ! A.transform ((translate ( 8*h0) ( 6*l0 )) <> S.rotate 240) + pentagon ! A.transform ((translate ( 8*h0) ( 6*l0 )) <> S.rotate 300) + --- + pentagon ! A.transform ((translate (11*h0) ( -l0/2)) <> S.rotate 60) + pentagon ! A.transform ((translate ( 9*h0) ( 3*l0/2)) <> S.rotate 240) + pentagon ! A.transform ((translate ( 9*h0) ( 3*l0/2)) <> S.rotate 300) + pentagon ! A.transform ((translate (10*h0) ( 4*l0 )) <> S.rotate 180) + pentagon ! A.transform ((translate (10*h0) ( 4*l0 )) ) + pentagon ! A.transform ((translate (11*h0) (13*l0/2)) <> S.rotate 120) + pentagon ! A.transform ((translate (11*h0) (13*l0/2)) <> S.rotate 60) + --- + pentagon ! A.transform ((translate (11*h0) ( -l0/2)) ) + pentagon ! A.transform ((translate (12*h0) ( 2*l0 )) <> S.rotate 120) + pentagon ! A.transform ((translate (12*h0) ( 2*l0 )) <> S.rotate 60) + pentagon ! A.transform ((translate (10*h0) ( 4*l0 )) <> S.rotate 240) + pentagon ! A.transform ((translate (10*h0) ( 4*l0 )) <> S.rotate 300) + pentagon ! A.transform ((translate (11*h0) (13*l0/2)) <> S.rotate 180) + pentagon ! A.transform ((translate (11*h0) (13*l0/2)) ) + --- + pentagon ! A.transform ((translate (11*h0) ( -l0/2)) <> S.rotate 300) + pentagon ! A.transform ((translate (12*h0) ( 2*l0 )) <> S.rotate 180) + pentagon ! A.transform ((translate (12*h0) ( 2*l0 )) ) + pentagon ! A.transform ((translate (13*h0) ( 9*l0/2)) <> S.rotate 120) + pentagon ! A.transform ((translate (13*h0) ( 9*l0/2)) <> S.rotate 60) + pentagon ! A.transform ((translate (11*h0) (13*l0/2)) <> S.rotate 240) + pentagon ! A.transform ((translate (11*h0) (13*l0/2)) <> S.rotate 300) + --- + pentagon ! A.transform ((translate (14*h0) ( 0*l0 )) <> S.rotate 60) + pentagon ! A.transform ((translate (12*h0) ( 2*l0 )) <> S.rotate 240) + pentagon ! A.transform ((translate (12*h0) ( 2*l0 )) <> S.rotate 300) + pentagon ! A.transform ((translate (13*h0) ( 9*l0/2)) <> S.rotate 180) + pentagon ! A.transform ((translate (13*h0) ( 9*l0/2)) ) + pentagon ! A.transform ((translate (14*h0) ( 7*l0 )) <> S.rotate 120) + --- + pentagon ! A.transform ((translate (14*h0) ( 0*l0 )) ) + pentagon ! A.transform ((translate (15*h0) ( 5*l0/2)) <> S.rotate 120) + pentagon ! A.transform ((translate (15*h0) ( 5*l0/2)) <> S.rotate 60) + pentagon ! A.transform ((translate (13*h0) ( 9*l0/2)) <> S.rotate 240) + pentagon ! A.transform ((translate (13*h0) ( 9*l0/2)) <> S.rotate 300) + pentagon ! A.transform ((translate (14*h0) ( 7*l0 )) <> S.rotate 180) + where + pentagon = + S.use ! A.xlinkHref "#HaskellSvgIcons-pentagonTile" + r0 = 1 + a0 = r0 / 2 + l0 = r0 * sqrt 3 + h0 = r0 + a0 + y0 = l0 * 7 + x0 = y0 * sqrt 3 + pentagonDirs = mkPath $ do + m 0 0 + lr (-r0) l0 + lr a0 (l0/2) + lr r0 0 + lr a0 (-l0/2) + lr (-r0) (-l0) + S.z +
svg-icons.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: svg-icons -version: 2.8.0.2 +version: 2.8.1.0 homepage: https://github.com/RamiroPastor/SvgIcons license: BSD-3-Clause license-file: LICENSE