Modo descriptivo

	A=P() 
	    punto
	    Genera un punto en una posicin aleatoria. 
	    
	A=P(0,1) 
	    Un punto fijo. 
	    
	a=s(B,C) 
	    segmento 
	    Segmento de B hasta C. 
	    
	a=s(B,2) 
	    Segmento de longitud fija y extremo B. 
	    
	a=g(B,C) 
	    recta 
	    recta por B y C. 
	    
	a=r(B,C) 
	    semirrecta 
	    semirrecta con extremo B y pasa por C. 
	    
	k=k(A,B) 
	    circunferencia 
	    Circunferencia de centro A que pasa por B. 
	    
	k=k(A,2) 
	    Circunferencia de centro A y radio fijo. 
	    
	k=k(A,B,C) 
	    Circunferencia de centro A y radio BC. 
	    
	A=S(g,g) 
	    interseccin 
	    interseccin de dos rectas. 
	    
	A,B=S(k,k) 
	    Dos puntos de interseccin entre circunferencias o rectas y circunferencias.
	    
	M=M(A,B) 
	    punto medio 
	    punto medio de AB. 
	    
	g=p(g,A) 
	    recta paralela 
	    paralela a g por A. 
	    
	g=l(g,A) 
	    perpendicular 
	    perpendicular a g por A. 
	    
	a=w(A,B,C) 
	    ngulo 
	    Angulo ABC
	    
	a=w(A,B,90) 
	    Angulo de amplitud fija. 
	    
	A=area(P1,P2,P3) 
	    polgono con esos vrtices. 
	    
	value(P,0,1) 
	    valor 
	    Fija las coordenadas del punto P 
	    
	value(s,2) 
	    Fija la longitud del segmento s. 
	    
	value(k,2) 
	    Fija el radio de la circunferencia k. 
	    
	value(w,90) 
	    Fija la amplitud del ngulo w. 
	    
	value(true,o) 
	    muestra el valor de o.
	    puede omitirse "true".
	    
	value(true) 
	    define el valor predeterminado de los valores. 
	    
	name(o,p) 
	    nombre 
	    define el nombre o de p. 
	    
	name(true,o) 
	    muestra el nombre de o. 
	    puede omitirse "true".
	    
	name(true) 
	    Define el valor predeterminado para los nombres. 
	    
	hide(true,o) 
	    oculta 
	    Muestra/oculta o. 
	    puede omitirse "true".
	    
	hide(true) 
	    Establece el estado predeterminado de los objetos (oculto/visible). 
	    
	col(green,o) 
	    color 
	    Define el color de o en rojo, verde, azul o caf. 
	    
	col(green) 
	    Selecciona el color predeterminado. 
	    
	th(thick,o) 
	    grosor
	    define el grosor de o (grueso, normal o delgado). 
	    
	th(thick) 
	    Selecciona el grosor predeterminado 
	    
	type(square,P) 
	    tipo 
	    define el tipo de punto (square, circle, diamond or point). 
	    
	type(square) 
	    Selecciona el tipo predeterminado de punto. 
	    
	part(true,k) 
	    truncar 
	    define el objeto k como truncado. 
	    "true" can be omitted.
	    
	part(true) 
	    Sets the default partial state. 
	    
	fill(true,o) 
	    fill 
	    Sets the object o to filled state. 
	    "true" can be omitted.
	    
	back(true,o) 
	    background 
	    Sets the object o to the background. 
	    "true" can be omitted.
	    
	window(0,0,5) 
	    window 
	    Sets the view window to width 2*5 and center (0,0). 

	In places, where points are expected, c(k), a(s) and b(s) can be
	used. c(k) is the center of the circle k, a(s) and b(s) are the
	two defining points of a segment, ray or line.

Macros
	
	Macros can be used in interactive mode too. Names left of = will
	be assigned to targets. If there are several targets, the names
	must be separated by commas. One additional parameter may be used
	to assign a value for an object, which would be prompted in
	interactive mode.
	
Expressions
	
	Expressions obey the usual mathematical conventions, including
	precedence of */ over +-. One can also use the power ^ (also
	written as **). Brackets are allowed and respected.
	
	There are the usual mathematical functions, like sin, cos, tan,
	arcsin, arccos, arctan, sqrt, exp and log. For rounding to integer
	values, there are round, ceil and floor. x(P) and y(P) will
	compute the coordinates of a point. d(P,Q) computes the distance
	of two points. a(A,B,C) computes the angle ABC.
	
	Names of segments, circles and angles are evaluated to the length,
	radius and size respectively.
	
Descriptive constructions in files

	One can load constructions from a file, or edit and then load such
	constructions. An example can is this file. The syntax is line
	oriented and uses the commands described above. Line comments
	starting with // may be used. The files may contain macros like
	this
	
		macro U 
		// Constructs a circle through three points
		    parameter A=point // Select first point
		    parameter B=point // Select second Point
		    parameter C=point // Select third point
		    g1=MS(A,B)
		    g2=MS(A,C)
		    U=intersection(g1,g2)
		    target k=circle(U,A)
		end
	
	The indents are optional. Comments in the parameter lines are used
	as prompts, if the macro is used interactively. This macro calls
	the macro MS with two parameters.
	
		macro MS
			param A=point
			param B=point
			partial(true)
			k1=circle(A,B)
			k2=circle(B,A)
			partial(false)
			P1,P2=intersection(k1,k2)
			target g=line(P1,P2)
		end
	
	If a line constructs two objects, the target must be defined
	separately.
	
		A,B=intersection(g,k)
		target B
	
	If a macro has more than one target, all targets must be
	assigned.
	
		A,B=test(...)
	
	Prompts are defined by the keyword prompt in front of an object
	name.
	
		k=circle(A,5)
		pompt k
	
	Here is an example of a macro using a segment as a parameter.
	
		macro MS
		// Mittelsenkrechte
			A=point
			B=point
		    parameter s=segment(A,B)
		    ...
		Ende
	
	If circles are used as a paramter, there is the special syntax
	
		M=point
		parameter circle(M)
	
	This kind of circle can only be used in parameters.
	