当回答最近的问题 Prolog Constraint Processing : Packing Squares 时,我想要可视化 Prolog + clpfd 给出的答案。
为此,我编写了一些不太规范的 Prolog 代码,使用了 Prolog 内置的 "谓词"
快速的hack效果不错,但是我感觉自己写的代码过于臃肿和有些混乱...我想找到一种更具声明性的替代方案来进行这样的2D可视化。我感觉SVG可能是一个不错的选择。
现在,SVG基于XML,多个Prolog系统提供了处理XML的库作为其标准库的一部分。
是否有适用于SVG的Prolog库?或者其他适合Prolog绑定的2D/(3D)数据可视化框架/工具?
你认为有哪些合理的方法呢? 提前感谢!
为此,我编写了一些不太规范的 Prolog 代码,使用了 Prolog 内置的 "谓词"
format/2
和 write/1
,以发出适当的 ImageMagick 命令,如下所示:drawBoxesWithIM_at_pix(Sizes,Positions,P) :-
Colors = ["#ff0000","#00ff00","#0000ff","#ffff00","#ff00ff","#00ffff"],
write(' -strokewidth 2 -stroke white'),
nth1(N,Positions,Xb+Yb),
nth1(N,Sizes, Wb*Hb),
nth1(N,Colors, Color),
format(' -draw "fill ~sb0 roundrectangle ~d,~d ~d,~d ~d,~d"',
[Color, Xb*P+3,Yb*P+3, (Xb+Wb)*P-3,(Yb+Hb)*P-3, P/2,P/2]),
false.
drawBoxesWithIM_at_pix(_,_,_).
快速的hack效果不错,但是我感觉自己写的代码过于臃肿和有些混乱...我想找到一种更具声明性的替代方案来进行这样的2D可视化。我感觉SVG可能是一个不错的选择。
现在,SVG基于XML,多个Prolog系统提供了处理XML的库作为其标准库的一部分。
是否有适用于SVG的Prolog库?或者其他适合Prolog绑定的2D/(3D)数据可视化框架/工具?
你认为有哪些合理的方法呢? 提前感谢!