### 12.14.1 Measurement and display: distanceat distanceatraw angleat angleatraw areaat areaatraw perimeterat perimeteratraw slopeat slopeatraw extract_measure

Many commands to find measures have a version ending in at (or atraw) which are used to interactively find and display the appropriate measure in a two-dimensional geometry screen. To use them, open a geometry screen with Alt-G and then select the appropriate measure from the Mode ▸ Measure menu. Once the mode is selected, then clicking on the names of the appropriate objects (or, if a point is being selected, a name will be automatically generated if clicking on an open point) with the mouse and then clicking on another point will put the measurement at the point; if the mode is the version ending in at, then the measurement will have a label, if the mode is the version ending in atraw, then the measurement will appear without a label.

The commands with at and atraw versions are:

distance,distanceat,distanceatraw
  This finds the distance between two points or other geometric objects. (See section 12.14.2.)
angle,angleat,angleatraw
  This finds the measure of an angle BAC given points A, B and C. (See section 12.14.4.)
area,areaat,areaatraw
  This finds the area of a circle or a polygon which is star-shaped with respect to its first vertex. (See section 12.14.6.)
perimeter,perimeterat,perimeteratraw
  This finds the perimeter of a circle, circular arc or a polygon. (See section 12.14.7.)
slope,slopeat,slopeatraw
  This finds the slope of a line, segment, or two points which determine a line. (See section 12.14.8.)

These commands can also be used from the command line. They are like the measurement command but take an extra argument, the point to display the measurement. When using the version ending in at, use names for the objects rather create the objects within the measurement command.
Input:

S1 := square(0,1); areaat(S1,1+i)

Output:

Input:

S2 := square(0,1); areaatraw(S2,1+i)

Output:

More sophisticated legends are created with the legend command.
Input:

S := square(0,1); a := area(S); legend(1+i,"Area(S) = " + string(a),blue)

Output:

The extract_measure command takes as argument a command which displays a measurement (one of the at or atraw commands) and returns the measurement.
Input:

A := point(-1); B := point(1+i); C := point(i);

and then:

extract_measure(angleat(A,B,C,0.2i))

Output:

atan(1/3)