Swi prolog 在XPCE中描绘对象列表

Swi prolog 在XPCE中描绘对象列表,swi-prolog,xpce,Swi Prolog,Xpce,我想在XPCE中制作一个动画,由任意数量的移动圆组成。 这些圆在序言列表中给出,其中包含每个圆的坐标、半径和颜色。因此,列表如下所示:[[1,2],20,红色],[40,2],15,绿色],…] 当然,我可以生成一个圆,命名和着色如下: new(@p,picture). send(@p,display,new(@ci,circle(20)),point(1,2)). send(@ci,fill_pattern,colour(red)). 但是,当我想代表整个列表时,我该怎么做?我需要动态名称,

我想在XPCE中制作一个动画,由任意数量的移动圆组成。 这些圆在序言列表中给出,其中包含每个圆的坐标、半径和颜色。因此,列表如下所示:[[1,2],20,红色],[40,2],15,绿色],…] 当然,我可以生成一个圆,命名和着色如下:

new(@p,picture).
send(@p,display,new(@ci,circle(20)),point(1,2)).
send(@ci,fill_pattern,colour(red)).
但是,当我想代表整个列表时,我该怎么做?我需要动态名称, 但是

send(@p,display,new(@X,circle(20)),point(1,2)).
其中X是前面指定的某个标识符,但不被接受。

类似的内容

t1 :-
    L =  [[[1,2],20,red],[[40,2],15,green]] ,
     new(D,picture),
    maplist(my_display(D), L),
    send(D, open).

my_display(D, [[X,Y], R, Colour]) :-
    new(C, circle(R)),
    send(C, fill_pattern, colour(Colour)),
    send(D, display, C, point(X,Y)).

是的,看起来不错!谢谢,我对Prolog和编程都没有经验,也不知道“maplist”命令。我相信它会派上用场的。:-)