Как сэмплировать сигнал и сохранить сэмплированное значение в вязе?

Рассмотрим модель:

model : Signal Model

и следующие 2 сигнала:

clickPosition = Mouse.position
  |> Signal.sampleOn Mouse.clicks

а также:

dimensions = Window.dimensions

Я хотел бы получить следующее desiredSignal:

            (0,0)       (30,20)               (60,70)
clickPosition +------------+---------------------+---------

              M0   M1                  M2     M3
        model +----+-------------------+------+------------

          (600,800)         (400,300)  (200,800)
   dimensions +-----------------+----------+---------------

              D1           D2                    D3
desiredSignal +------------+---------------------+---------


where:

  D1 = ((0,0), M0, (600,800))
  D2 = ((30,20), M1, (600,800))
  D3 = ((60,70), M3, (200,800))

т.е. я хотел бы попробовать на clickPosition, но сохраните значение выборки.

Как я мог это сделать?

1 ответ

Решение

Похоже, ваш desiredSignal это последнее значение трех сигналов, связанных, но изменяющихся только при изменении clickPosition сигнал. Вы можете сделать это, сначала объединив их, а затем clickPosition сигнал:

desiredSignal =
  Signal.map3 (,,) clickPosition model dimensions
  |> Signal.sampleOn clickPosition
Другие вопросы по тегам