Se presenta una lista de ejemplos para familiarizarse con el lenguaje Postscript. Para verificar estos ejemplos y experimentar, se sugiere el siguiente procedimiento:
- Windows:
Escribir el código utilizando el Bloc de notas, y guardarlo con extensión .ps (para forzar al programa a utilizar esta extensión, es necesario entrecomillar el nombre completo; por ejemplo, escribir como nombre de archivo «prueba.ps» al guardarlo). Luego, abrir alguna versión de Adobe Acrobat Professional y arrastrar el archivo a la ventana de Acrobat. - Mac:
Escribir el código utilizando TextEdit en modo texto normal (Preferencias > Nuevo documento > Formato), y guardarlo con extensión .ps. Luego, puede simplemente hacerse doble clic en el archivo (el cual abrirá en Vista Previa) o bien arrastrar el archivo a alguna versión de Acrobat (a diferencia de Windows, macOS cuenta con soporte nativo de PostScript).
![]() |
OvilloEjemplo de repetición de una figura simple, por trazado, cambiando su ubicación por medio de una rotación del espacio del usuario. |
%! % Ejemplo 1: Ovillo /mm {72 mul 25.4 div} def % Conversion de mm a puntos /W {210 mm} def % Ancho A4 /H {297 mm} def % Alto A4 << /PageSize [W H] >> setpagedevice /circulo { % Circulo generico. % Espera: x y radio % Deja: - 0 360 arc } def /forma { % Traza un circulo especifico, de 60 mm de radio y 2 puntos de contorno. % Espera: x y % Deja: - 2 setlinewidth 60 mm circulo stroke } def /N 8 def % Cantidad de veces que dibujaremos una figura W 2 div H 2 div translate % Origen de coordenadas al centro de la p‡gina 0 setgray 0 0 forma % Primera figura en el centro, en negro 1 0 0 setrgbcolor N { % Repetir N veces 360 N div rotate % Rotar el espacio (360/N) grados cada vez 25 mm 0 forma % y dibujar la figura 25 mm a la derecha en ese espacio } repeat showpage
![]() |
AnillosEjemplo de repetición de una figura simple, por pintado, cambiando su ubicación por medio de una rotación del espacio del usuario. |
%! % Ejemplo 2: Anillos /mm {72 mul 25.4 div} def % Conversion de mm a puntos /W {210 mm} def % Ancho A4 /H {297 mm} def % Alto A4 << /PageSize [W H] >> setpagedevice /circulo { % Circulo generico. % Espera: x y radio % Deja: - 0 360 arc } def /anillo { % Dibuja un anillo. % Espera: x y % Deja: - 2 copy % Preservar parametros x y para despues 40 mm circulo % Preparar circulo exterior de 40 mm fill % Llenarlo con el color actual 1 setgray % Blanco para el interior 30 mm circulo % Preparar circulo interior de 30 mm fill % Llenarlo con blanco } def /N 15 def % Cantidad de veces que dibujaremos el anillo W 2 div H 2 div translate % Origen de coordenadas al centro de la pagina 0 setgray 0 0 anillo % Anillo en negro 1 1 N { % Repetir de 1 en 1 hasta N 360 N div rotate % Rotar espacio en (360/N) 1 0 0 setrgbcolor % Elegir rojo 40 mm 0 anillo % Anillo a 40 mm a la derecha } for showpage
![]() |
Anillos en dos coloresEjemplo de repetición de una figura simple, por pintado, cambiando su ubicación por medio de una rotación del espacio del usuario, y utilización de un condicional para la alternancia de colores. |
%! % Ejemplo 3: Anillos en dos colores /mm {72 mul 25.4 div} def % Conversion de mm a puntos /W {210 mm} def % Ancho A4 /H {297 mm} def % Alto A4 << /PageSize [W H] >> setpagedevice /circulo {0 360 arc} def % Circulo generico /anillo { % Dibuja un anillo. % Espera: x y % Deja: - 2 copy 2 setlinewidth 40 mm circulo fill 1 setgray 30 mm circulo fill } def % Circulo de 40 mm de radio calado por otro blanco de 30 mm /N {15} def % Numero de circulos W 2 div H 2 div translate % Origen de coordenadas al centro de la p‡gina 1 1 N { 360 N div rotate % Rotar espacio en (360/N) grados 2 mod 0 eq {1 0 0} % Elegir rojo si es par {1 1 0} % Elegir amarillo si es impar ifelse setrgbcolor 40 mm 0 anillo % Trazar anillo } for showpage
![]() |
Rayos en dos coloresRepetición de líneas a modo de rayos, cambiando su ubicación por medio de una rotación del espacio del usuario, y utilización de un condicional para la alternancia de colores. |
%! % Ejemplo 4: Rayos en dos colores /mm {72 mul 25.4 div} def % Conversion de mm a puntos /W {210 mm} def % Ancho A4 /H {297 mm} def % Alto A4 << /PageSize [W H] >> setpagedevice /linea { moveto 70 mm 0 rlineto stroke } def % Trazar linea de 70 mm hacia la derecha /N {20} def % Numero de lineas W 2 div H 2 div translate % Origen de coordenadas al centro de la p‡gina 2 setlinewidth % Espesor de las lineas: 2 pt 1 1 N { % Repetir de 1 a N 360 N div rotate % Rotar espacio en (360/N) grados 2 mod 0 eq {0 1 1} % Cyan en lineas pares {0 0 1} % Azul en lineas impares ifelse setrgbcolor 0 0 linea % Trazar linea } for showpage
![]() |
Rayos en espiral a dos coloresRepetición de líneas a modo de rayos, de longitud variable, cambiando su ubicación por medio de una rotación del espacio del usuario, y utilización de un condicional para la alternancia de colores. |
%! % Ejemplo 5: Rayos en espiral a dos colores /mm {72 mul 25.4 div} def % Conversion de mm a puntos /W {210 mm} def % Ancho A4 /H {297 mm} def % Alto A4 << /PageSize [W H] >> setpagedevice /ultimopunto { % Define dos simbolos, "ultimox" y "ultimoy" iguales a las coordenadas % del ultimo punto alcanzado % Espera: - % Devuelve: - currentpoint exch /ultimox exch def /ultimoy exch def } def /linea { % Linea generica a partir del punto y longitud dados, % y registra el ultimo punto alcanzado % Espera: longitud x y % Devuelve: - moveto % Mover a (x, y) 0 rlineto % Crear linea hacia la derecha ultimopunto % Guardar ultimo punto stroke % Trazar } def /N {20} def % Cantidad de rayos W 2 div H 2 div translate % Origen de coordenadas al centro de la p‡gina 2 setlinewidth % Espesor de linea 2 pt 1 1 N { % Desde 1 en pasos de 1 hasta N 360 N div rotate % Rotar espacio en (360/N) grados dup % Preservar paso actual 2 mod 0 eq % Verificar paridad {0 1 1} % Cian si es par {0 0 1} % Azul si es impar ifelse setrgbcolor % Establecer color dup % Preservar paso actual 4 mm mul 10 mm add % Obtener longitud como 4 mm * paso + 10 mm 0 0 linea % Linea a partir del origen % Llenar circulo con centro en el ultimo punto alcanzado % y radio 5 mm ultimox ultimoy 5 mm 0 360 arc fill } for showpage