0
下面的函數確定一個給定的位置是否是形狀內:榆樹 - 如何處理類型信號布爾
isPosInShape: (Int,Int) -> (Float,Float) -> (Float,Float) -> Bool
isPosInShape (posX, posY) (w, h) (shapeX, shapeY) =
let
(pX,pY) =
(toFloat posX, toFloat posY)
in
(pX > shapeX - w/2) && (pX < shapeX + w/2) && (pY > shapeY - h/2) && (pY < shapeY + h/2)
饋送鼠標位置時,這可以計算鼠標是否是在一個形狀區域(由矩形區域近似):
Signal.map3 isPosInShape Mouse.position (width, height) (sX, sY)
其中(width, height)
和(sX, sY)
是Signal.Signal (Float, Float)
類型。
這裏的問題是,上述表達式的返回值是Signal Bool
類型 - 如何將其輸入條件函數if
? 他們只接受Bool
類型。
有沒有我在這裏失蹤的最佳做法?