HPGL
# HPGL

El HPGL (Hewlett & Packard Graphics Language) es en lenguaje de descripción de gráficos, diseñado originariamente para el control de Plotters (trazadores gráficos).

El HPGL tiene una segunda versión, el HPGL/2, con más instrucciones y que funciona con unidades métricas, mientras que el HPGL funciona con el Sistema Anglosajón de Unidades.

## Sumario de instrucciones

* SC Coordenadas lógicas de las esquinas del papel P1, P2
* ETX 0x03: Terminador de cadena
* ; Separador de instrucciones
* IN Initialize: Devuelve a los parámetros su valor por defecto.
* DF Defaults: Da a los parámetros sus valores por defecto, pero sin cambiar P1 ni P2
* SC Scale: Escala el gráfico SCx0,x1,y0,y
* IP Input Points: Da las coordenadas físicas a P1 y P2. Si x2,y2 no existen, P2 se cambia para mantener la escala. IPx1,y1[,x2,y2]
* IW Input Window: Rectángulo donde se aplicará el clipping. IW sin argumentos inhibe el clipping. IW[x0,y0,x1,y1]
* RO Rotate: ROa0 ${\begin{cases}HPGL:&a0=\{0|90\}\\HPGL/2:&a0=\{0|90|180|270\}\end{cases}}$
* PG Page: Fin de página
* SP Select Pen SPnp
* PU Pen Up: Levanta la pluma y se desplaza a los puntos especificados PU[x1,y1[,x2,y2[...]]]
* PD Pen Down: Baja la pluma y traza segmentos hasta los puntos especificados. Las coordenadas son absolutas o relativas según el último PA o PR ejecutado. PD[x1,y1[,x2,y2[...]]]
* PA Plot Absolute: Mueve la pluma a la(s) nuevas posiciones PA[x1,y1[,x2,y2[...]]]
* PR Plot Relative: Realiza desplazamientos relativos de la pluma. PR[x1,y1[,x2,y2[...]]]
* LT Line Type: Tipo de línea LTn (Por defecto se traza una línea continua: n=0)

| n | Tipo de línea | Muestra |
| - | - | - |
| 0 | Línea continua | _________ |
| 1 | De puntos | . . . . . . |
| 2 | Trazos cortos | - - - - - - |
| 3 | Trazos largos | _ _ _ _ _ |
| 4 | Punto y raya | ·-·-·-·-·- |
| 5 | Raya corta y larga | -_-_-_-_-_ |
| 6 | | - - - - |
| 99 | Estilo anterior | |
| n<0 | El estilo se ajusta a la longitud de la línea |

* SM Symbol Mode: Dibuja el carácter c al final de cada línea, aún con PU. Si c se omite, se inhibe el SM. SM[c]
* PE Plot Encoded
* AA Arc Absolute: Dibuja un arco centrado en (x, y), de a grados en sentido antihorario desde la posición del cursor. AAx,y,a
* AR Arc Relative
* CI Circle: Dibuja un círculo de radio r y con centro en la posición previa. Siempre se dibuja con la pluma abajo. Si de indica el ángulo, se dibujan polígonos. Si a=60, se dibujan exágonos. CIr[,a]
* PM Polygon Mode PM[n]
