về một đƣờng mà đi qua mỗi điểm, đa giác (polygon) trong đó có một danh sách các điểm và trả về một đa giác không đều mà đi qua mỗi điểm và các hàm trong thƣ viện nhƣ “rect” để tạo hình chữ nhật, “oval” xây dựng hình bầu dục, và “ngon” để xây dựng đa giác.
Hàm collage cung cấp cung cấp khả năng kết hợp các yếu tố đồ họa trong một Form một cách có cấu trúc để tạo ra một thành phần. Nó sẽ thực hiện với các tham số nhƣ độ rộng, chiều cao và danh sách các forms.
Collage : Int -> Int -> [Form] -> Element
Đoạn mã bên dƣới biểu diễn cách tạo một vài Forms, thay đổi các thuộc tính của chúng và chuyển đổi chúng và sử dụng collage để kết hợp chung thành một thành phần.
1 import Color exposing (..)
2 import Graphics.Collage exposing (..)
3 import Graphics.Element exposing (..)
4 import Signal exposing (Signal, map)
5 import Text exposing (..)
6 import Mouse 7 square =rect 70 70 8 pentagon = ngon 5 20 9 circle = oval 50 50 10 zigzag = path [ (0,0), (10,10), (0,30),(10,40)] 11 main = collage 400 400 12 [-- Tạo một hình ngũ giác mầu xanh 13 filled green pentagon,
14 --Tạo một hình tròn viền xanh dương 15 outlined (dashed blue) circle,
16 --Tạo một hình vuông vơi đường biên là mầu đên và nghiêng 70 độ 17 rotate (degrees 70)(outlined (solid black) square),
18 --Tạo một đường zic zắc với tọa độ là (x =40, y = 40) 19 (traced (solid red) zigzag)
20 |> move 50 50 21 ]
2.2.3 Các tín hiệu tương tác trong Elm
Một tín hiệu là một dòng các giá trị mà thay đổi theo thời gian. Cho phép các lập trình viên tạo ra các tƣơng tác với giao diện ngƣời dùng thông qua các tín hiệu từ môi trƣờng bên ngoài. Elm cung cấp một số tín hiệu đƣợc sử dụng trong các chƣơng trình Elm.
Bảng dƣới đây sẽ mô tả các tín hiệu đầu vào cấu trúc của chúng.
Signal Type and Description
Mouse.position Signal (Int, Int)
Current coordinates of the mouse. Mouse.Clicks Signal()
Triggers on mouse clicks. Window.dimensions Signal (Int, Int)
Current dimensions of window. Time.every Time -> Signal Time
Update every t milisecongds. Time.fps Float -> Signal Time
Time deltas, updating at the given FPS. Touch.touches Signal [Touch]
List of ongoing touches. Useful for denfining gestures. Touch.taps Signal {x: Int, y: Int}
Position of the latest tap. Keyboard.keysDown Signal [keyCode]