我想在XPCE中制作动画,包含任意数量的移动圆圈。 圆圈在Prolog列表中给出,包含每个圆圈的坐标,半径和颜色。因此,列表如下所示:[[[1,2],20,red],[[40,2],15,green],...] 我当然可以生成一个圆圈,命名并按如下方式着色:
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是先前指定的某个标识符,不接受。
答案 0 :(得分:1)
那样的东西?
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)).