2012-07-10 78 views
0

我想在XPCE中製作一個動畫,由任意數量的移動圓組成。 圓形在Prolog列表中給出,其中包含每個圓的座標,半徑和顏色。因此,列表看起來像這樣:[[[1,2],20,紅色],[[40,2],15,綠色],...] 我當然可以生成一個圓圈,命名它和顏色它如下:在XPCE中描述對象列表

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是先前指定的一些標識不被接受。

回答

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)). 
+0

是的,似乎這樣做!謝謝,我既沒有Prolog的經驗,也沒有編程經驗,也不知道'maplist'命令。我相信它會派上用場。 :-) – MirrorMan 2012-07-10 21:21:03