/******************************************************************** Constraint-based Graphical Programming in B-Prolog % Drawing the flag of Aruba *********************************************************************/ go:- aruba(Comps), cgWindow(Win,"aruba"), handleWindowClosing(Win), cgSame(Comps,window,Win), cgPack(Comps), cgMove(Comps,30,30), cgShow(Comps). handleWindowClosing(Win),{windowClosing(Win)} => cgClose(Win). aruba(Comps):- cgRectangle(Bl), Bl^color #=blue, Bl^width #=420, 13*Bl^width #= 21*Bl^height, Recs=[R1,R2], cgRectangle(Recs), cgSame(Recs,color), cgSame(Recs,size), cgSame(Recs,x), R1^color #= orange, cgSame([R1,Bl],x), cgSame([R1,Bl],width), R1^y #= Bl^y + 13*Bl^height/20, 50*R1^height #=3*Bl^height, R2^y #=R1^y + 2*R1^height, Stars=[S0,S1], cgStar(Stars), cgSame(Stars,n,4), cgSame(Stars,angle0,90), cgSame(Stars,center), S0^color #=white, 5*S0^centerX #= Bl^height, S0^centerY #= S0^centerX, 50*S0^diameter #=9*Bl^width, 3*S0^innerDiameter #=S0^diameter, S1^color #=red, 20*S1^diameter #=19*S0^diameter, 3*S1^innerDiameter #= S1^diameter, Comps=[Bl,S0,S1|Recs].