ianmackenzie/elm-geometry

Add BoundingBox2d.aspectRatio

Open

#133 opened on May 30, 2020

 (1 comment) (0 reactions) (0 assignees)Elm (28 forks)auto 404
Hacktoberfest

Repository metrics

Stars
 (186 stars)
PR merge metrics
 (PR metrics pending)

Description

I've found that I've needed this function a couple times. Writing the code in a one-off fashion looks like this

( w, h ) =
    BoundingBox2d.dimensions boundingBox

aspectRatio =
    Quantity.ratio h w

safeAspectRatio = 
    if isNaN aspectRatio || isInfinite aspectRatio then
        Nothing
    else
        Just aspectRatio

This is verbose so it would be nice to just have as BoundingBox2d.aspectRatio: BoundingBox2d -> Maybe Float and possibly BoundingBox2d.aspectRatioInv: BoundingBox2d -> Maybe Float for the width over height version.

Edit: I know elm-geometry tends to avoid having functions that depend on a particular x y coordinate system but I think an exception should be made for BoundingBox2d since it's already defined in terms of an x y coordinate system.

Contributor guide