Vijual树图

时间:2014-04-23 21:04:52

标签: graphics clojure tree

在试图使用vijual的draw-tree函数时,我遇到了一些问题。首先,我不确定我是否使用了正确的命名空间(:require vijual :reload),因为我无法绘制任何树。我也试过(:require vijual.graphical)但是没有认出来。这导致draw-tree无法被识别,即CompilerException无法解析符号。

树的节点应该对应于n元组,并且在3元组以下的情况下。输入看起来像

(def foo (draw-tree [[:vec (9/2 6 13/2) [[[:vec (1 2 3)] [:vec (2 3 4)]] [:vec (3 4 5)]] [:vec (7 9 9)]]]))

对应树

{:vec (9/2 6 13/2)
 :right {:vec [7 9 9]},
 :left  {:right {:vec [3 4 5]}, 
         :left  {:vec [1 2 3]}, 
         :vec (2 3 4)}}

我一直使用的依赖是[org.clojars.overtone/vijual "0.2.1"]

1 个答案:

答案 0 :(得分:1)

如果你是一个代表,这应该有效:

(use 'vijual)
(def foo (draw-tree ....

use将另一个名称空间符号引用到当前名称空间中,这样您就可以在不限定它们的情况下调用它们。 require需要加载命名空间,但需要用它来引用符号:

(require 'vijual)
(def foo (vijual/draw-tree ...

当我这样做时,调用了该函数,但仍然有错误。特别是,您有(9/2 6 13/2)等 - 这将尝试作为函数调用9/2。我并不完全清楚你正在拍摄什么(尤其是地图),但这确实是一个开始:

(def foo (draw-tree [[:vec [9/2] [6] [13/2]] ]))