The PostScript::Elements Module

The PostScript::Elements module incorporates support for drawing vector graphics in the form of lines, arc, and boxes (see Figure 11-3). It provides routines to draw these three shapes, and can be easily extended to encapsulate other shapes or more complex forms. The methods allow you to control the width of the line, the tint of the line (a percentage of gray), and the tint of the fill (a percentage of gray or transparent).

The PostScript::Elements module allows you to draw arcs, lines, and boxes
Figure 11-3. The PostScript::Elements module allows you to draw arcs, lines, and boxes

The Elements module can be used as in Example 11-5, which draws a random number of arbitrary lines, boxes, and arcs.

Example 11-5. Using the Elements module
#!/usr/bin/perl -w
# Example 11-5. Generate a random collection of lines, boxes, arcs

use strict;
use PostScript::Elements;

my $e = new PostScript::Elements;

my $r = rand(25);
for (my $i=0; $i<= $r; $i++) {
    $e->addArc(points  => [rand(612), rand(792),
                           rand(200), rand(360), rand(360)],
               linewidth => rand(8) );
    $e->addBox(points  => [rand(612), rand(792), rand(200), rand(200)],
               linewidth => rand(8) );
    $e->addLine(points => [rand(612), rand(792), rand(200), rand(200)],
               linewidth => rand(8) );
}

open OUT, ">example.ps" or die "Couldn't open example.ps: $!";
print OUT $e->Write( );
close OUT;

For each form drawn, the points attribute passes on the description of the points in the line, box, or arc. It ...

Get Perl Graphics Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.