diff options
Diffstat (limited to 'src/Model/Color.elm')
-rw-r--r-- | src/Model/Color.elm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/Model/Color.elm b/src/Model/Color.elm new file mode 100644 index 0000000..8452efa --- /dev/null +++ b/src/Model/Color.elm @@ -0,0 +1,22 @@ +module Model.Color + ( Color + , htmlOutput + , mergeColors + ) where + +type alias Color = + { red : Int + , green : Int + , blue : Int + } + +htmlOutput : Color -> String +htmlOutput color = "rgb(" ++ (toString color.red) ++ ", " ++ (toString color.green) ++ ", " ++ (toString color.blue) ++ ")" + +mergeColors : Float -> Color -> Color -> Color +mergeColors ratio c1 c2 = + let mergePart x y = truncate (ratio * (toFloat x) + (1 - ratio) * (toFloat y)) + in { red = mergePart c1.red c2.red + , green = mergePart c1.green c2.green + , blue = mergePart c1.blue c2.blue + } |