需要帮助翻译foo + =(bar - foo)*qux; 到Clojure

Ric*_*hez 1 java processing clojure

我在Java/Processing中有以下代码

  posX += (targetX - posX) * easing;
  posY += (targetY - posY) * easing;
Run Code Online (Sandbox Code Playgroud)

但我很难将其翻译成Clojure,任何帮助都将不胜感激!

jua*_*rro 5

基于你的代码片段,我猜你基本上是使用另一个集合和一个缓动因子来变换一组坐标.

我将定义一个函数来以下列方式封装转换:

(defn ease-coord [factor src tgt]
  (+ src (* (- tgt src) factor)))

(defn ease [factor src tgt]
  (map (partial ease-coord factor) src tgt))

(ease 0.1 [1 2] [3 10])
;=> (1.2 2.8)
(ease 0.1 [1 2 3] [3 10 5])
;=> (1.2 2.8 3.2)
Run Code Online (Sandbox Code Playgroud)

请注意,该ease函数实际上适用于具有任意数量坐标的矢量和列表.