0

我想在 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 是前面指定的某个标识符,不被接受。

4

1 回答 1

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)).
于 2012-07-10T13:19:06.757 回答