0

XPCEで、任意の数の動く円で構成されるアニメーションを作成したいと思います。円はプロローグリストに記載されており、各円の座標、半径、色が含まれています。したがって、リストは次のようになります。[[[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 に答える