50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Prolog
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Prolog
		
	
	
	
	
	
 | 
						|
:- use_module(library(python)).
 | 
						|
 | 
						|
:- initialization(main).
 | 
						|
 | 
						|
setup_dir :-
 | 
						|
	prolog_load_context(directory, Dir),
 | 
						|
	atom_concat(Dir,'pyx/',Base),
 | 
						|
	assert(base(Base)).
 | 
						|
 | 
						|
:- setup_dir.
 | 
						|
 | 
						|
main :- 
 | 
						|
	python_import(pyx),
 | 
						|
	ex(X),
 | 
						|
	flush_output,
 | 
						|
	fail.
 | 
						|
main.
 | 
						|
 | 
						|
ex(hello) :-
 | 
						|
	c := canvas:canvas(_),
 | 
						|
	:= $c:text(0, 0, 'Hello, world!'),
 | 
						|
	:= $c:stroke(path:line(0, 0, 2, 0)),
 | 
						|
	:= $c:writePDFfile('hello').
 | 
						|
 | 
						|
ex(pathitem) :-
 | 
						|
	c := canvas:canvas(_),
 | 
						|
	rect1 := path:path(path:moveto(0, 0), path:lineto(1, 0),
 | 
						|
                  path:moveto(1, 0), path:lineto(1, 1),
 | 
						|
                  path:moveto(1, 1), path:lineto(0, 1),
 | 
						|
                  path:moveto(0, 1), path:lineto(0, 0)),
 | 
						|
        rect2 := path:path(path:moveto(2, 0), path:lineto(3, 0),
 | 
						|
                  path:lineto(3, 1), path:lineto(2, 1),
 | 
						|
                  path:lineto(2, 0)),
 | 
						|
	rect3 := path:path(path:moveto(4, 0), path:lineto(5, 0),
 | 
						|
                  path:lineto(5, 1), path:lineto(4, 1),
 | 
						|
                  path:closepath(_)),
 | 
						|
         := $c:stroke($rect1, [style:linewidth:'THICK']),
 | 
						|
         := $c:stroke($rect2, [style:linewidth:'THICK']),
 | 
						|
         := $c:stroke($rect3, [style:linewidth:'THICK']),
 | 
						|
	 := $c:writePDFfile('pathitem').
 | 
						|
 | 
						|
ex(changebar) :-
 | 
						|
	g := graph:graphxy(width=8, x=graph:axis:bar(_)),
 | 
						|
	base(Source), atomic_concat(Source, 'minimal.dat', Data),
 | 
						|
	:= $g:plot(graph:data:file(Data, xname=0, y=2), [graph:style:changebar(_)]),
 | 
						|
	:= $g:writePDFfile(changebar).
 | 
						|
 | 
						|
 |