0

我正在尝试从此处找到的 Vec2D 类调用 randomVector 方法http://toxiclibs.org/docs/core/

这是我的代码:

(def particles (new ArrayList))


(defn add-particle []
  (dotimes [i 100]
    (doto particles
      ;(.add (new Vec2D (random (width)) (random (height))))
      (.add (Vec2D/randomVector))))

到目前为止一切都很好,但我需要从同一个类中调用其他方法,如 scale 和 add,我不知道如何在 Clojure 中做到这一点

这是我在Java中的做法:

Vec2D position = Vec2D.randomVector().scale( 60 ).add( canvasCenter );

任何帮助都感激不尽

4

1 回答 1

2

试试下面的代码,java静态方法应该像这样调用(ClassName/methodName arguments)

(defn add-particle []
  (dotimes [i 100]
    (doto particles
      (.add (Vec2D/randomVector)))))

对于您的第二个问题,您需要以任何方式定义canvasCenter一些位置。

(defn add-particle []
      (dotimes [i 100]
        (doto particles
          (.add (.scale (Vec2D/randomVector) (float 60)) canvasCenter)))
于 2013-03-13T16:20:46.437 回答